题目:45. 跳跃游戏 II
思路:贪心。
挑选下一个位置的条件是 : 总是选择可以跳的更远的位置。
例子:
位置2,可以跳5步,位置3可以跳2步,那我们优先选择位置2,因为它可以跳的更远。
代码:
class Solution {
public int jump(int[] nums) {
if (nums.length == 1) {
return 0;
}
int cur = 0;
int time = 0;
while (cur < nums.length) {
if (cur + nums[cur] >= nums.length - 1) {
return time + 1;
}
int max = 0;
int maxStep = 0;
for (int i = cur + 1; i <= cur + nums[cur]; i++) {
if (i + nums[i] > max) {
maxStep = i;
max = i + nums[i];
}
}
cur = maxStep;
time ++;
}
return time;
}
}