位元組跳動演算法題 馬里奧跳躍

2021-09-25 06:47:34 字數 719 閱讀 6999

思路:動態規劃

n = 7

p = 0

# maxdis = [10, 0, 2, 1, 1, 0, 1]

# maxdis = [2, 0, 1, 1, 1, 1, 1]

maxdis = [5, 0, 5, 1, 1, 1, 1]

# dp[i] 代表當前點到終點的最小跳躍次數

dp = [0 for i in range(0, len(maxdis))]

for i in range(len(maxdis)-1, p-1, -1):

if maxdis[i] == 0:#當前點為懸崖,則從當前點無法達到終點

dp[i] = -1

elif i + maxdis[i] >= len(maxdis):#從當前點一步即可到達終點

dp[i] = 1

else:

step =

for j in range(i+1, i+maxdis[i]+1):

if dp[j] != -1:

if len(step) > 0:

dp[i] = min(step) + 1

else:

dp[i] = -1

print(dp)

位元組跳動演算法題跳躍遊戲

位元組跳動是比較注重演算法類的題目,都必須要手撕 的。這次遇到的題目如下 55.跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步...

玩轉 馬里奧 的演算法能搞定 口袋妖怪 嗎?

現在,你很可能已經聽說過機械人玩遊戲的水平超過人類了吧。這些機械人的一種設計方法是給它們明確地程式設計,設定一組輸入和一組輸出之間的對應關係 或者也可以讓它們自主學習 進化,它們就可以對同樣的輸入做出不同的反應,以期找到最優的對策。一些聞名遐邇的機械人有 alphazero 它是乙個象棋機械人,經過...

程式設計題 機械人跳躍問題 Golang 位元組跳動

機械人正在玩乙個古老的基於dos的遊戲。遊戲中有n 1座建築 從0到n編號,從左到右排列。編號為0的建築高度為0個單位,編號為i的建築的高度為h i 個單位。起初,機械人在編號為0的建築處。每一步,它跳到下乙個 右邊 建築。假設機械人在第k個建築,且它現在的能量值是e,下一步它將跳到第個k 1建築。...