这道题也是动态规划经典题,简单的说,可以从最后开始往回跳这个思路入手。首先要des变量保存为最后需要跳到的位置,然后往回一步一步跳,若在某个位置可以跳到最后的des位置,即往回跳,同时更新des为当前位置的值。
class Solution {
public:
bool canJump(vector<int>& nums) {
int l = nums.size();
int pos = 0;
int des = l - 1;
for (int i = l - 2; i >= 0; i--) {
if (nums[i] + i >= des)
des = i;
}
if (des == 0)
return true;
else
return false;
}
};