classSolution:defminCostClimbingStairs(self, cost: List[int])->int:
n =len(cost)
dp =[0]*n
dp[0],dp[1]= cost[0],cost[1]for i inrange(2,n):
dp[i]= cost[i]+min(dp[i-1],dp[i-2])returnmin(dp[-1],dp[-2])
## 更简洁classSolution:defminCostClimbingStairs(self, cost: List[int])->int:
n =len(cost)+1
dp =[0]*n
for i inrange(2,n):
dp[i]=min(cost[i-1]+dp[i-1],cost[i-2]+dp[i-2])return dp[-1]
classSolution:defuniquePaths(self, m:int, n:int)->int:#dp = [[0]*n for j in range(m)]#for i in range(m):# dp[i][0] = 1#for j in range(n):# dp[0][j] = 1## 以上代码可以简化下面这列
dp =[[1]*n for j inrange(m)]for i inrange(1,m):for j inrange(1,n):
dp[i][j]= dp[i][j-1]+ dp[i-1][j]return dp[-1][-1]