难点(边界条件)

i+1<len
  • 1.

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

示例代码

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;
    }
};
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

效果展示

LeetCode---45. 跳跃游戏 II(贪心)_游戏