思路:动态规划,从后往前递推,对于第i个位置,如果第i-1个位置能跳到第i个位置,那么问题就转化为能否跳到第i-1个位置,如果第i-1个位置无法跳跃到第i个位置,那么就看第i-2个位置能否跳到第i个位置,如果可以,那么问题就转化为能否跳跃到第i-2个位置。…以此类推,如果最后的问题是能否跳到第0个下标,那么说明整个数组都可以跳跃达到,否则不能
class Solution {
public:
bool canJump(vector<int>& nums) {
int target=nums.size()-1;
for(int i=nums.size()-2;i>=0;i--){
if(i+nums[i]>=target)
{
target=i;
}
}
if(target==0)
return true;
else
return false;
}
};