55. 跳跃游戏 - 力扣(LeetCode) (leetcode-cn.com)
这题要判断能否在当前可以跳的步子内跳出这个步子范围,也是在这个范围内找到 位置+该位置能跳的步数结果中最大的位置,跳到该位置处,如果当前可以跳的步子能够跳到结尾,返回true。
class Solution {
public:
bool canJump(vector<int>& nums) {
if(nums.size()==1) return true;
int start=0,index=0,pos=0,max=0;
while(true){
if(nums[start]>=nums.size()-start-1) return true;
pos=index;
for(int i=start+1;i<=start+nums[start];i++){
if(max<i+nums[i]){
max=i+nums[i];
index=i;
}
}
if(pos==index) return false;
start=index;
}
}
};