首先创建一个index数组,存储当前位置最大可达的数组下标,就以样例1来举例,输入是[2,3,1,1,4],那么对应的这个index数组就是[2,4,3,4,8]
定义一个变量jump,表示当前走到的下标,jump从0开始
class Solution {
public:
bool canJump(vector<int>& nums) {
vector<int> index;//最远可达位置
for(int i = 0;i < nums.size();i++)
index.push_back(i + nums[i]);
int jump = 0;
int max_index = index[0];
while(jump < index.size() && jump <= max_index){
if(max_index < index[jump])
max_index = index[jump];
jump++;
}
if(jump == index.size())
return true;
return false;
}
};