这个题目是找跳跃最小次数,思想从第一个数开始,记录第一个数能到的最大边界(加1),找到在到最大值范围内的这些数能到的最大值
当i到这个最大边界后,更新最大边界,判断最大边界如果大于数组长度,break
class Solution {
public:
int jump(vector<int>& nums) {
int res=0,end=0,maxpos=0;
for(int i=0;i<nums.size()-1;i++){
maxpos=max(nums[i]+i,maxpos);//记录这个位置能到的下一个位置的最大位置
if(i==end){//到达这个最大边界
end=maxpos;//更新最大边界
res++;
}
if(end>(nums.size())){//最大边界大于数组长度,输出
break;
}
}
return res;
}
};