給定一個正整數數組,最大為100個成員,從第一個成員開始,走到數組最后一個成員最少的步驟數,第一步必須從第一個元素開始,1<=步長


題目內容:給定一個正整數數組,最大為100個成員,從第一個成員開始,走到數組最后一個成員最少的步驟數,第一步必須從第一個元素開始,1<=步長<len/2,第二步開始以所在成員的數字走相應的步數,如果目標不可達返回-1,只輸出最少的步驟數量。

輸入:由正整數組成的數組,以空格分隔,數組長度小於100,請自行解析數據數量。
輸出:正整數,表示最少的步數,如果不存在輸出-1。

python代碼:

'''在步長限制范圍內,通過迭代更新當前的索引及下一步的步長'''
#
num_arr = input().split(' ') #num_arr = [int(i) for i in num_arr] num_arr = [7,5,9,4,2,6,8,3,5,4,3,9] # 示例 ,輸出為2 N = len(num_arr) if N%2==0: max_step_length = N/2-1 else: max_step_length = N/2 num_list = [] for step in range(1,int(max_step_length)): index_next = step num = 1 while index_next<N: next_step = num_arr[index_next] index_next = index_next + next_step if index_next<N: num+=1 if index_next == N-1: num_list.append(num) # print("step:",step) # print("num_list:",num_list) if index_next>=N: num_list.append(-1) out_num = [ i for i in num_list if i>0] if len(out_num)==0: print(-1) else: print(min(out_num))

代碼通過率80%, 記錄筆試所遇問題,待解決,如有大佬幫忙指正,感激不盡!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM