题目描述:
题解:
1.在cost前后各加一个0构成newcost,表示开始和结束,dp[i]表示从当前位置到顶的cost,长度与newcost相同。
2. dp[len(newcost)-1] = 0,dp[len(newcost)-2] = newcost[len(newcost)-2],
dp[i] = min(dp[i+1],dp[i+2])+newcost[i]。
class Solution(object): def minCostClimbingStairs(self, cost): newcost = [] newcost.append(0) newcost = newcost+cost newcost.append(0) dp = [0 for i in range(len(newcost))] dp[len(newcost)-2] = newcost[len(newcost)-2] for i in range(len(newcost)-3,-1,-1): dp[i] = min(dp[i+1],dp[i+2])+newcost[i] return dp[0]