步长问题--JAVA


题目:给定一个正整数数组,最大为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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM