Question 4 Array Hopper I
Method 1 DP 从后往前跳
public class Solution {
public boolean canJump(int[] array) {
// Write your solution here
// sanity check
if (array.length == 1) {
return true;
}
boolean[] canJump = new boolean[array.length];
canJump[array.length - 1] = true;
for (int i = array.length - 2; i >= 0; i--) {
if (i + array[i] >= array.length - 1){// case 1:表示你直接就可以跳,所以不需要回头看了
canJump[i] = true;
} else {
for (int j = 1; j <= array[i]; j++) {
if (canJump[i + j] && i + array[i] >= j) {
canJump[i] = true;
break; // 因为已经找到了 不需要找了
}
}
}
}
return canJump[0];
}
}Method 2 DP 从前往后跳
Last updated