自己思路:0是关键,有0的情况才会导致跳不过去,从0开始分析,情况很多很复杂。
题解思路1:从后向前,出现0距离加1,对比前一个数字是否能跳过0
public static boolean canJump(int[] nums) {
//[1,0,3,0,0,1,4]
int distance = 0;
for(int i = nums.length-2;i >= 0;i--) {
System.out.println("i "+ nums[i]+" distance"+distance);
if(nums[i] == 0) {
distance++;
}else {
if(distance < nums[i]) {
distance = 0;
}else {
distance++;
}
}
}
if(distance == 0) {
return true;
}
return false;
}