php解决01背包问题示例代码,01背包问题就是你需要选择一组物品放入一个背包,以使它们的总价值最大化,同时不超过背包的容量限制。
代码语言:php
所属分类:其他
代码描述:php解决01背包问题示例代码,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