和跳跃游戏II一样,只要看最远覆盖距离就ok。区别是这里不用考虑一个接着一个跳,因为不用算步数,所以就看是否每一个点都被最大跳跃数覆盖到了即可。
class Solution {
public:
bool canJump(vector<int>& nums) {
int start=0;
bool ans=false;
for(int i=0;i<nums.size();++i)
{
if(i>start) return false;//如果i更新了,但是start停止更新,说明跳不下去了,所以返回false.
start=max(start,i+nums[i]);
}
return true;
}
};