首先创建一个 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;
- }
- };