题目: 跳跃游戏 II
来自智得网
分析
贪心法
该题可以使用贪心法进行求解。
计算每一跳的区间范围。
假如示例1的数组为 a ,第一个元素第一跳最大是2,可以第一跳之后位于的区间是数组中的 a[1:2] ,第二跳可以从a1或者a2开始跳,如果a1起跳的区间是a[2:4],a2起跳只能跳到a[3],所以第二跳的区间范围是 a[2:4] 。
如果某一跳的右区间大于等于数组长度减一,则是问题答案。
题解
贪心法
class Solution {
public int solute(int[] nums) {
int len = nums.length, jumpCnt = 0, left = 0, right = 0;
while(right < len-1){
int maxBound = right;
for(int i = left; i <= right; i++)
maxBound = Math.max(nums[i]+i, maxBound);
left = right + 1;
right = maxBound;
jumpCnt++;
}
return jumpCnt;
}
}