贪心算法
1.跳跃游戏II
- 这道题的思想就是提前看,看下一步(next_max>=i)可以走的范围内,再向下(next_max=max(next_max,i+nums[i)的可以走的最远的位置.
- 用end记录边界,end记录第一次看下一步的边界,当i==end,step++
class Solution {
public:
int jump(vector<int>& nums) {
int n=nums.size();
int next_max=0;
int end=0;
int step=0;
for(int i=0;i<n-1;i++){
if(next_max>=i){
next_max=max(next_max,i+nums[i]);
if(i==end){
end=next_max;
++step;
}
}
}
return step;
}
};