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

代码语言:php

所属分类:其他

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

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

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

<?php
function knapsack($values, $weights, $capacity) {
    $n = count($values);
    $dp = array_fill(0, $n + 1, array_fill(0, $capacity + 1, 0));

    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 = [];
    $w = $capacity;
    for ($i = $n; $i > 0 && $w > 0; $i--) {
      .........完整代码请登录后点击上方下载按钮下载查看

网友评论0