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,也就是最后一个索引。
challenge icon

进阶

统计到达最后一个索引的不同跳跃序列数量,结果对 10^9+7 取模,时间复杂度仍为 O(n)。

重置代码
def canJump(nums):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

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

预期输出

true