1 Star 0 Fork 0

catyMap/AlgorithmNote

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
minCostII.go 854 Bytes
一键复制 编辑 原始数据 按行查看 历史
dogemap 提交于 2021-05-06 23:09 +08:00 . 添加动态规划等题目
package main
import (
"fmt"
"math"
)
func minCostII(costs [][]int) int {
n, k := len(costs), len(costs[0])
dp := make([][]int,n + 1, n + 1)
for i := 0 ; i < n + 1 ; i ++{
dp[i] = make([]int,k,k)
}
// 1.初始化dp
for i := 0 ; i < k ; i ++ {
dp[0][i] = costs[0][i]
}
// 2.填充dp
for i := 1 ; i < n ; i++ {
for j := 0 ; j < k ; j ++ {
minDP := math.MaxInt32
for m := 0 ; m < k ; m ++ {
if m == j {
continue
}
if minDP > dp[i-1][m] {
minDP = dp[i-1][m]
}
}
dp[i][j] = minDP + costs[i][j]
}
}
res := math.MaxInt32
for i := 0 ; i < k ; i++ {
if dp[n-1][i] < res {
res = dp[n-1][i]
}
}
return res
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
func main() {
arr := [][]int{{3,20,7,7,16,8,7,12,11,19,1},{10,14,3,3,9,13,4,12,14,13,1}}
fmt.Println(minCostII(arr))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dogemap/algorithm-note.git
git@gitee.com:dogemap/algorithm-note.git
dogemap
algorithm-note
AlgorithmNote
dc486f96f6c1

搜索帮助