golang解决01背包问题示例代码
代码语言:golang
所属分类:算法
代码描述:golang解决01背包问题示例代码,01背包问题就是你需要选择一组物品放入一个背包,以使它们的总价值最大化,同时不超过背包的容量限制。
代码标签: golang 解决 01 背包 问题 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
package main import "fmt" func knapsack(values []int, weights []int, capacity int) (int, []int) { n := len(values) dp := make([][]int, n+1) for i := range dp { dp[i] = make([]int, capacity+1) } for i := 1; i <= n; i++ { for w := 1; w <= capacity; w++ { if weights[i-1] <= w { dp[i][w] = max(dp[i-1][w], values[i-1]+dp[i-1][w-weights[i-1]]) } else { dp[i][w] = dp[i-1][w] } } } selectedItems := make([]int, 0) i, w := n, capacity for i > .........完整代码请登录后点击上方下载按钮下载查看
网友评论0