难点(边界条件)
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;
}
};
效果展示