步長問題--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