给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。
public class CanJump {
public boolean canJump(int[] A) {
int n = A.length;
boolean[] f = new boolean[n];
f[0] = true;
for (int j = 1; j < n; j++) {
//之前的石头
//假设第j个没有跳过去
f[j] = false;
//最后一个石头
for (int i = 0; i < j; i++) {
if (f[i] && i + A[i] >= j) {
f[j]=true;
break;
}
}
}
return f[n-1];
}
public static void main(String[] args) {
CanJump c = new CanJump();
// int[] A = {2,3,1,1,4};
int[] A = {3,2,1,0,4};
boolean b = c.canJump(A);
System.out.println(b);
}
}