给定一个非负整数数组 nums
,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。
思路:找每个点能覆盖到的最大范围,注意停止条件是不超过覆盖范围
class Solution {
public:
bool canJump(vector<int>& nums) {
//找当前位置能跳到的最大覆盖范围
int maxJump=0,dest=nums.size()-1;
for(int i=0;i<=maxJump;i++)
{
maxJump=max(maxJump,i+nums[i]);
if(maxJump>=dest) return true;
}
return false;
}
};