题目描述
明确以下几点
-
数组值代表的是从当前位置可以最大跳几步
-
那么最大就意味着我可以到达当前位置与最大位置中间的任何一个位置上
因此思路也就出来了,我们不断的判断当前位置与最大位置中间的位置上的点能否到达数组尾部
代码实现
class Solution {
public:
bool canJump(vector<int>& nums) {
int cur_index = 0;
if(nums.size()==1)
{
return true;
}
for(int i=0; i <= cur_index; i++)
{
cur_index = max(i+nums[i], cur_index);
if(cur_index>=nums.size()-1)
{
return true;
}
}
return false;
}
};