个人思路总结:
它更适合反过来想。我们可以从数组的倒数第二个个元素看起,每次往前遍历,如果当前的元素能够到达最后一个位置,那么我们把当前位置开始到最后全部“切断”,以当前元素为最后一个元素,重复第一次的过程就好了。而最后,如果我们遍历到数组的第一个元素,那么此题返回true,否则,你懂得。
代码如下:
class Solution {
public:
bool canJump(vector<int>& nums) {
int end = nums.size()-1;
for(int i=end-1;i>=0;i--)
{
if(nums[i]>=end-i)
end = i;
}
if(end==0)
return true;
else
return false;
}
};