[leetcode] 55. 跳跃游戏
分明就是45. 跳跃游戏 II的缩水版本嘛。。😓,难度高的版本居然放在了前面,把像我这种有强迫症的必须按照题号刷题的人不放在眼里么。。。
class Solution {
public boolean canJump(int[] nums) {
return jump(nums) != Integer.MAX_VALUE;
}
public int jump(int[] nums) {
int f[] = new int[nums.length];
if (nums.length == 0) {
return 0;
}
if (nums.length == 1) {
return 0;
}
f[nums.length - 1] = 0;
for (int i = nums.length - 2; i >= 0; i--) {
f[i] = findMin(f, i, nums[i]) + 1;
if (f[i] < 0) f[i] = Integer.MAX_VALUE;
}
return f[0];
}
private int findMin(int[] f, int i, int num) {
int min = Integer.MAX_VALUE;
for (int j = 1; j <= num && i + j < f.length; j++) {
min = Math.min(min, f[i + j]);
}
return min;
}
}