一、题目
二、思路
每次都计算是否能到达这个位置,如果能到达计算在这位置最远可以到达的位置(i+nums[i]),如果最远可以到达的地方大于等于nums.size()-1,则返回true
三、代码
class Solution {
public:
bool canJump(vector<int>& nums) {
int size=nums.size();
//实时维护到达的最远距离
int max_num=nums[0];
for(int i=1;i<size;++i){
if(max_num<i){
return false;
}
else{
max_num=max(max_num,i+nums[i]);
if(max_num>=size-1){
return true;
}
}
}
return true;
}
};