給定一個正整數數組,設為nums,最大為100個成員,求從第一個成員開始,正好走到數組最后一個成員,所使用的最少步驟數。


給定一個正整數數組,設為nums,最大為100個成員,求從第一個成員開始,正好走到數組最后一個成員,所使用的最少步驟數。
要求:
1、第一步必須從第一元素開始,且1<=第一步的步長<len/2;(len為數組的長度,需要自行解析)。
2、從第二步開始,只能以所在成員的數字走相應的步數,不能多也不能少, 如果目標不可達返回-1,只輸出最少的步驟數量。
3、只能向數組的尾部走,不能往回走。

輸入描述:

由正整數組成的數組,以空格分隔,數組長度小於100,請自行解析數據數量。

輸出描述:

正整數,表示最少的步數,如果不存在輸出-1

輸入

7 5 9 4 2 6 8 3 5 4 3 9

輸出

2

說明

第一步: 第一個可選步長選擇2,從第一個成員7開始走2步,到達9;第二步: 從9開始,經過自身數字9對應的9個成員到最后。

def read_data():
    return [int(index) for index in input().split()]
nums = read_data()
for i in range(1, len(nums) // 2):
    sum = i
    count = 1
    res = 100
    length = len(nums)
    while sum < length - 1:
        sum = sum + nums[sum]
        count = count + 1
    if sum == length - 1:
        res = min(count, res)
print(res if res != 100 else -1)

 

 


免責聲明!

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



猜您在找 給定一個正整數數組,最大為100個成員,從第一個成員開始,走到數組最后一個成員最少的步驟數,第一步必須從第一個元素開始,1<=步長 面試官: 100萬個成員的數組取第一個和最后一個有性能差距嗎? 在排序數組中查找元素的第一個和最后一個位置(給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。) Leetcode練習(Python):數組類:第45題:給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 你的目標是使用最少的跳躍次數到達數組的最后一個位置。 給定一個整數數組 nums 和一個目標值 target,求nums和為target的兩個數的下表 Leetcode練習(Python):數組類:第53題:給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。進階: 如果你已經實現復雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。 Leetcode練習(Python):數組類:第55題:給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個位置。 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target  的那 兩個 整數,並返回它們的數組下標。 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM