袋鼠過河(python版)

2021-09-08 03:14:16 字數 1167 閱讀 6202

題目來自於牛客網

題目描述

乙隻袋鼠要從河這邊跳到河對岸,河很寬,但是河中間打了很多樁子,每隔一公尺就有乙個,每個樁子上都有乙個彈簧,袋鼠跳到彈簧上就可以跳的更遠。每個彈簧力量不同,用乙個數字代表它的力量,如果彈簧力量為5,就代表袋鼠下一跳最多能夠跳5公尺,如果為0,就會陷進去無法繼續跳躍。河流一共n公尺寬,袋鼠初始位置就在第乙個彈簧上面,要跳到最後乙個彈簧之後就算過河了,給定每個彈簧的力量,求袋鼠最少需要多少跳能夠到達對岸。如果無法到達輸出-1

輸入描述

輸入分兩行,第一行是陣列長度n (1 ≤ n ≤ 10000),第二行是每一項的值,用空格分隔。
輸出描述

輸出最少的跳數,無法到達輸出-1
樣例

輸入

5

2 0 1 1 1

輸出

下面**源自於牛客網一位大神

n = int(input())

numlist = list(map(int, input().split()))

# 判斷能否到達

def canfinish(numlist):

jump = [0]

for i in range(1, n):

# jump 上次跳過的最大距離

# numlist[i-1] 在第i個樁子上能跳的最遠距離

if (jump[-1] < 0):

return false

return true

cu***r = 0 # 能到達的最遠距離

count = 0 # 步數

thispoint = 0 # 當前的位置

for i in range(n):

cu***r = max(cu***r, i + numlist[i])

if (thispoint == i):

count += 1

thispoint = cu***r

print(count if canfinish(numlist) else -1)

袋鼠過河問題

題目描述 乙隻袋鼠要從河這邊跳到河對岸,河很寬,但是河中間打了很多樁子,每隔一公尺就有乙個,每個樁子上都有乙個彈簧,袋鼠跳到彈簧上就可以跳的更遠。每個彈簧力量不同,用乙個數字代表它的力量,如果彈簧力量為5,就代表袋鼠下一跳最多能夠跳5公尺,如果為0,就會陷進去無法繼續跳躍。河流一共n公尺寬,袋鼠初始...

c 程式設計題 袋鼠過河

乙隻袋鼠要從河這邊跳到河對岸,河很寬,但是河中間打了很多樁子,每隔一公尺就有乙個,每個樁子上都有乙個彈簧,袋鼠跳到彈簧上就可以跳的更遠。每個彈簧力量不同,用乙個數字代表它的力量,如果彈簧力量為5,就代表袋鼠下一跳最多能夠跳5公尺,如果為0,就會陷進去無法繼續跳躍。河流一共n公尺寬,袋鼠初始位置就在第...

7 袋鼠過河

個人水平有限,請見諒!乙隻袋鼠要從河這邊跳到河對岸,河很寬,但是河中間打了很多樁子,每隔一公尺就有乙個,每個樁子上都有乙個彈簧,袋鼠跳到彈簧上就可以跳的更遠。每個彈簧力量不同,用乙個數字代表它的力量,如果彈簧力量為5,就代表袋鼠下一跳最多能夠跳5公尺,如果為0,就會陷進去無法繼續跳躍。河流一共n公尺...