【题目描述】
【思路分析】
贪心规律:
算法思路:
class Solution {
public:
int jump(vector<int>& nums) {
//如果数组长度小于2,则说明不用跳跃,返回0
if(nums.size()<2)
return 0;
int current_max_index = nums[0]; //当前可达到的最远位置
int pre_max_index = nums[0]; //遍历各个位置过程中,可达到的最远位置
int jump_min = 1;
for(int i=1;i<nums.size();i++) {
//若无法再向前移动了,才进行跳跃
if(i>current_max_index) {
jump_min++;
current_max_index = pre_max_index; //更新当前可到达的最远位置
}
if(pre_max_index < nums[i]+i) {
pre_max_index = nums[i]+i; //更新pre_max_index
}
}
return jump_min;
}
};
![](https://i-blog.csdnimg.cn/blog_migrate/c0403023446abc9e26579532891c3c08.png)