【问题描述】给一个非负整数数组。假设你最初的位置为0,数组中每一个元素的值代表你能跳跃最大的长度,判断是否能达到数组的最后一个位置
【输入形式】第一行数组长度
第二行输入一个非负整数数组
【输出形式】布尔类型的值
【样例输入】
5
1 2 3 1 4
【样例输出】
true
import java.util.*;
public class Main {
static public void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
int max = 0;
int flag = 1;
for (int i = 0; i < n; i++) {
int num = i + arr[i];
max = Math.max(num, max);
if (max == i && i != n - 1) {
flag = 0;
break;
}
}
if (flag == 1)
System.out.println("true");
else
System.out.println("false");
}
}