LeetCode 筆記 - 746. Min Cost Climbing Stairs

題目在此 746. Min Cost Climbing Stairs

給定一系列爬樓梯的成本,你可以選擇一次爬一階或兩階
請給出爬完的最低成本

解題思維

這題就是 Dynamic programming 的基本應用

從過去兩階挑選成本最小的階梯即可

程式碼

1
2
3
4
5
6
7
8
9
10
class Solution:
def minCostClimbingStairs(self, cost: List[int]) -> int:

if (size := len(cost)) == 2:
return min(cost)

for i in range(2, size):
cost[i] += min(cost[i - 2], cost[i - 1])

return min(cost[-1], cost[-2])