mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-12 05:20:59 +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
|
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
|
||||||
```Javascript
|
```Javascript
|
||||||
|
Reference in New Issue
Block a user