LeetCode 45 跳跃游戏Ⅱ
题目
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:
0 <= j <= nums[i]i + j < n
返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。
示例 1:
1 | 输入: nums = [2,3,1,1,4] |
示例 2:
1 | 输入: nums = [2,3,0,1,4] |
提示:
1 <= nums.length <= 1040 <= nums[i] <= 1000- 题目保证可以到达
nums[n-1]
题解
这题其实是可以借助55 跳跃游戏的思路。因为这里需要的是最少的跳数,而且绝对可达,需要做额外的处理为:需要一个额外的变量end记录先前(上一次)可抵达的最大距离,当i == end,就意味着我们已经到了可以抵达的最远距离,就需要更新end并且自增跳数。
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Excelius's World!
