nodejs解决01背包问题示例代码

代码语言:nodejs

所属分类:其他

代码描述:nodejs解决01背包问题示例代码,01背包问题就是你需要选择一组物品放入一个背包,以使它们的总价值最大化,同时不超过背包的容量限制。

代码标签: nodejs 解决 01 背包 问题 示例 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

function knapsack(values, weights, capacity) {
  const n = values.length;
  const dp = new Array(n + 1).fill(0).map(() => new Array(capacity + 1).fill(0));

  for (let i = 1; i <= n; i++) {
    for (let w = 1; w <= capacity; w++) {
      if (weights[i - 1] <= w) {
        dp[i][w] = Math.max(dp[i - 1][w], values[i - 1] + dp[i - 1][w - weights[i - 1]]);
      } else {
        dp[i][w] = dp[i - 1][w];
      }
    }
  }

  const selectedItems = [];
  let i = n;
  let w = capacity;
  while (i > 0 &am.........完整代码请登录后点击上方下载按钮下载查看

网友评论0