难点(边界条件)

i+1<len

除了最后一个位置,跳到其他任何一个位置的时候都要再进行判断

示例代码

class Solution {
public:
    int jump(vector<int>& nums) {
       int len=nums.size(),curDis=0,nextDis=0,result=0;
       //i+1<len是因为到了倒数第二个位置,一定可以随意跳到最后,到最后的时候不用再跳了
        for(int i=0;i+1<len;i++){
            nextDis=max(nextDis,i+nums[i]);
            if(i==curDis){
                curDis=nextDis;
                result++;                
            }
        }
        return result;
    }
};

效果展示

LeetCode---45. 跳跃游戏 II(贪心)_示例代码