# 代码随想录训练营第III期--038--python
# 509. 斐波那契数
class Solution:
def fib(self, n: int) -> int:
if n == 0: return 0
if n == 1: return 1
dp = [0] * (n+1)
dp[0],dp[1] = 0,1
if n > 1:
for i in range(2, n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[n]
# 70. 爬楼梯
def climb(self,n):
if n == 1: return 1
if n == 2: return 2
a,b = 1,2
for i in range(2, n):
a,b = b, a+b
return b
# 746. 使用最小花费爬楼梯
def mincost(self, cost):
if len(cost) < 3: return min(cost)
dp = [0] * (len(cost) + 1)
for i in range(2, len(cost) + 1):
dp[i] = min(dp[i - 1] + cost[i-1], dp[i-2] + cost[i-2])
return dp[-1]
代码随想录训练营第III期--038--python
最新推荐文章于 2024-07-25 00:08:05 发布