每日一练,不荒废也不痴迷~~
现在主要看的是idea,idea,解决问题的方法
题目原型:
Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Your goal is to reach the last index in the minimum number of jumps.
For example:
Given array A = [2,3,1,1,4]
The minimum number of jumps to reach the last index is 2
. (Jump 1
step from index 0 to 1, then 3
steps to the last index.)
class Solution {
public:
int jump(vector<int>& nums) {
int n=nums.size();
int curmax=0; //目前能够到达的最远距离
int curstepmax=0; //一共走curstep可以达到的最远距离
int curstep=0; //一共走了多少步
for(int i=0;i<n;++i){
if(curstepmax<i){
curstep++;
curstepmax=curmax;
}
curmax=max(curmax,nums[i]+i);
}
return curstep;
}
};