import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { static List<Integer> resu = new ArrayList<>(); static int[][] used; // 贪心算法 每次跳动最大值 public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] step = new int[n]; for (int i = 0; i < n; i++) { step[i] = in.nextInt(); } used = new int[n][n]; startDri(step, 0, 0); if (resu.size() > 0) { Collections.sort(resu); System.out.println(resu.get(0)); }else System.out.println(-1); } private static void startDri(int[] step, int index, int count) { if (used[index][count] == 1) { return; } used[index][count] = 1; if (index + step[index] > step.length - 1) { resu.add(count + 1); return; } if (step[index] == 0) { return; } int maxLength = index + step[index]; for (int i = index + 1; i < step.length && i <= maxLength; i++) { startDri(step, i, count + 1); } } }