45. 跳跃游戏 II
以最小的步数增加最大的覆盖范围,直到覆盖范围覆盖了终点
在cover范围内进行遍历,每次遍历完当前覆盖范围后步数加一
当下一步覆盖范围到达终点说明能走完,退出循环
class Solution {public:int jump(vector<int>& nums) {if(nums.size()==1)return 0;int cover = 0; //当前元素能覆盖的最远距离int result = 0;int nextcover = 0;//下一元素能覆盖的最远距离for(int i=0;i<=cover;i++){//在一个cover内记录下一个最远覆盖距离nextcover = max(nextcover,i+nums[i]);//当遍历完当前cover后,进行处理if(i==cover){//if(cover!=nums.size()-1){result++;cover = nextcover;if(cover>=nums.size()-1)break;}else break;}}return result;}};
