題目:給定一個正整數數組,最大為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 }