分析
nums[i]是表示当前位置所能跳的最大步数,那么到达最远处之前的地方都能到达,此时再在这些位置跳过去,所以只需要看最远的位置是否能到达数组末尾。
class Solution {
public:
bool canJump(vector<int>& nums) {
int s=0;
for(int i=0;i<nums.size();i++){
if(s<i)return false;
s=max(s,nums[i]+i);
}
return true;
}
};