1. 程式人生 > 其它 >給定一個正整數陣列,設為nums,最大為100個成員,求從第一個成員開始,正好走到陣列最後一個成員,所使用的最少步驟數。

給定一個正整數陣列,設為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)