解法:贪心算法
[i,end]为所有可选择的跳跃步数,
farthest为在[i,end]中能够跳到的最远距离
jmp为跳跃的次数
class Solution {
public:
int jump(vector<int>& nums) {
int end=0, farthest=0;
int jmp=0;
for(int i=0;i<nums.size()-1;i++){
farthest=max(nums[i]+i,farthest); //找能跳的最远的
if(i==end){ //遇到边界,就更新边界,并且步数加一
jmp++;
end=farthest;
}
}
return jmp;
}
};