用java编写一个函数 实现 判断 返回布尔 并且举出一个输出为false的例子,解释为什么 要求 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。
时间: 2024-04-12 19:29:12 浏览: 86
以下是一个用 Java 编写的函数,用于判断是否能够到达数组的最后一个位置:
```java
public class JumpGame {
public static boolean canJump(int[] nums) {
int lastPos = nums.length - 1;
for (int i = nums.length - 2; i >= 0; i--) {
if (i + nums[i] >= lastPos) {
lastPos = i;
}
}
return lastPos == 0;
}
public static void main(String[] args) {
int[] nums = {2, 3, 1, 1, 4};
System.out.println(canJump(nums)); // 输出为 true
}
}
```
上述代码中的 `canJump` 函数使用贪心算法,从倒数第二个位置开始遍历数组,通过更新 `lastPos` 变量来判断是否能够到达最后一个位置。如果最终 `lastPos` 的值为 0,说明可以到达最后一个位置,返回 `true`;否则,返回 `false`。
举一个输出为 `false` 的例子:
```java
public static void main(String[] args) {
int[] nums = {3, 2, 1, 0, 4};
System.out.println(canJump(nums)); // 输出为 false
}
```
在这个例子中,数组 `[3, 2, 1, 0, 4]` 中的最后一个位置是 4,但是从第一个位置开始,无论怎样跳跃,都无法到达最后一个位置。因此,返回值为 `false`。
请注意,这只是一个例子,实际上还有很多其他情况会导致无法到达最后一个位置,比如数组中存在负数或空数组等。
阅读全文