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