func BagProblem(weight []int, wealth []int, maxweight int) int {
m := len(weight)
//先遍历物品,再遍历背包大小
dp := make([]int, maxweight+1)
//begin
for i := 0; i < m; i++ { //遍历物品
for j := weight[i]; j <= maxweight; j++ { //遍历背包
dp[j] = max(dp[j], dp[j-weight[i]]+wealth[i])
}
}
return dp[maxweight]
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
完全背包问题
最新推荐文章于 2023-12-20 18:35:01 发布