给你一个非负整数数组 nums ,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
假设你总是可以到达数组的最后一个位置。
class Solution {
public int jump(int[] nums) {
int len = nums.length;
if(len == 1){
return 0;
}
int left = 0,right = nums[0];
int res = 1;
while(left < right){
if(right >= len-1){
return res;
}
//最右边界
int curMax = 0;
int pos = 0;
for(int i = left;i <= right;i++){
if(nums[i]+i > curMax){
//curMax = Math.max(curMax,nums[i]+i);
curMax = nums[i]+i;
pos = i;
}
}
left = pos;
right = curMax;
++res;
}
return res;
}
}