给定一个正整数数组nums,每个元素表示能上最大的阶梯数,假定在第0阶阶梯,试问,最少能走几步登上最高阶梯。
public int jumpGrid(int[] nums){
int ret=0;
int end=0;//当前能到达的最大阶梯
int nextEnd=0;//下一步能到达的最大阶梯
int n=nums.length;
if(n==1){
return 0;
}
for(int i=0;i<n;i++){
nextEnd=Math.max(nextEnd,i+nums[i]);
if(nextEnd>=n-1){
return ret+1;
}
if(i==end){
ret++;
end=nextEnd;
}else{//i<end
}
}
return ret;
}