题目:给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数,第一步必须从第一个元素开始,1<=步长<len/2,第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数量。
输入:由正整数组成的数组,以空格分隔,数组长度小于100,请自行解析数据数量。
输出:正整数,表示最少的步数,如果不存在输出-1.
7 5 9 4 2 6 8 3 5 4 3 9 2
代码:
3 import java.util.Scanner; 4 5 public class step { 6 public static void main(String[] args){ 7 Scanner input=new Scanner(System.in); 8 while (input.hasNextLine()){ 9 String str=input.nextLine(); 10 String[] arr=str.split(" "); 11 int min=1; 12 int index=0; 13 int start=arr.length-1; 14 while (start>=arr.length/2){ 15 for(int i=start;i>=0;i--){ 16 int a=Integer.parseInt(arr[i]); 17 if(a==(start-i)){ 18 index=i; 19 } 20 } 21 start=index; 22 min+=1; 23 } 24 if(index==0) 25 min=-1; 26 System.out.println(min); 27 } 28 input.close(); 29 } 30 }