Menu
CoddyTech

Jump Game

配列 nums のインデックス 0 にいます。インデックス i からは、1 から nums[i] までの任意の歩数だけ前方にジャンプできます。つまり、nums[i] はそこからの最大ジャンプ距離であり、0 の場合は移動できません。何らかのジャンプ列で最後のインデックスに到達できる場合は true を、そうでない場合は false を返してください。

関数

canJump(nums: integer-array) → boolean
numsinteger-array
各インデックスから跳べる最長距離
戻り値boolean
インデックス 0 から始めて最後のインデックスに到達できる場合は true、それ以外の場合は false

制約

  • 1 ≤ nums.length ≤ 104
  • 0 ≤ nums[i] ≤ 105
  • ジャンプの長さはnums[i]より短いことがあるため、長いジャンプでも最後のインデックスを飛び越えることはありません。

例

入力
nums = [2, 0, 3, 1, 0, 2]
出力
true
説明
インデックス 0 からはインデックス 1 または 2 に進めます。インデックス 1 には 0 が格納されており行き止まりですが、インデックス 2 には 3 が格納されており、最後のインデックスであるインデックス 5 に到達できます。

lock icon提出時に隠しテスト+18件

challenge icon

発展問題

最後のインデックスに到達する異なるジャンプ列の数を、10^9+7 を法として、引き続き O(n) 時間で求めます。

コードをリセット
def canJump(nums):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

nums = [2, 0, 3, 1, 0, 2]

期待値

true