一:题目
二:上码
class Solution {
public:
bool canJump(vector<int>& nums) {
/**
思路:这里的贪心套路我们是不断更新我们可以覆盖的最大范围,
如果我们的最大范围是能够覆盖最终的数组下标那就返回true,这里我们考虑移动几步的时候 我们必须考虑
最大范围
*/
int temp = nums.size();
int core = 0;//表示覆盖的范围
if(temp == 1) return true;
for(int i = 0;i < nums.size(); i++) {
core = max(core,nums[i]);//求取每次的最大的覆盖范围
if(core >= temp-1) return true;
if(core == 0 && nums[i] == 0) return false;//当我们的最大覆盖范围为0的话,且我们的元素也是0的话
//那就一定不可能到达终点。
temp--;
core--;
}
return false;
}
};