45. 跳跃游戏 II
https://leetcode-cn.com/problems/jump-game-ii/
解法一:穷举
but超时
解法二:贪心
i从0开始遍历,每次前移一位,直到n-2即可。
用两个指针迭代,end指向当前能到达的距离,另一个指针farthest向前探测[i,end]
所能到达的最远距离。(若不用end保证能到达的距离,则可能出现跳步,然而本题是不能跳的,每一处都必须能到达)
当i到达end时,表示走完一步,jumps加1,end更新为farthest。
在i==0时,jumps就为1(为何?)出发就开始累计步数,因为终点可能大于数组长度,不一定能到达,所以不应该在终点才算一步,而在起点
最后更新于