mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 12:15:58 +08:00
Merge pull request #1948 from HotPotJ/master
为【0749.使用最小花费爬楼梯】提供了另一种动态规划方程的思路 Go语言班班
This commit is contained in:
@ -284,6 +284,33 @@ func min(a, b int) int {
|
||||
return b
|
||||
}
|
||||
```
|
||||
``` GO
|
||||
第二种思路: dp[i]表示从i层起跳所需要支付的最小费用
|
||||
递推公式:
|
||||
i<n :dp[i] = min(dp[i-1],dp[i-2])+cost[i]
|
||||
i==n:dp[i] = min(dp[i-1],dp[i-2]) (登顶)
|
||||
|
||||
func minCostClimbingStairs(cost []int) int {
|
||||
n := len(cost)
|
||||
dp := make([]int, n+1)
|
||||
dp[0], dp[1] = cost[0], cost[1]
|
||||
for i := 2; i <= n; i++ {
|
||||
if i < n {
|
||||
dp[i] = min(dp[i-1], dp[i-2]) + cost[i]
|
||||
} else {
|
||||
dp[i] = min(dp[i-1], dp[i-2])
|
||||
}
|
||||
}
|
||||
return dp[n]
|
||||
}
|
||||
func min(a, b int) int {
|
||||
if a < b {
|
||||
return a
|
||||
}
|
||||
return b
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Javascript
|
||||
```Javascript
|
||||
|
Reference in New Issue
Block a user