美文网首页
动态规划:背包问题

动态规划:背包问题

作者: 绛珠仙靖 | 来源:发表于2020-03-16 00:23 被阅读0次

动态规划,都可以画网格解决!

背包问题

假设你是个小偷,背着一个可装4 磅东西的背包。
你可盗窃的商品有如下3 件:
音响,3000美元,4磅
笔记本电脑,2000美元,3磅
吉他,1500美元,1磅

image.png
 #author: Jingke

def bag(goods):
    cell = [[0, 0, 0, 0],
            [0, 0, 0, 0],
            [0, 0, 0, 0]]
    package_size = [1, 2, 3, 4]

    for j in range(4):
        if goods[0][1] <= package_size[j]:
            cell[0][j] = goods[0][0]
            # print(cell[0][j])

    for i in range(1, 3):
        """i=1,2"""
        for j in range(4):
            if goods[i][1] == package_size[j] and goods[i][0] >= cell[i - 1][j]:
                cell[i][j] = goods[i][0]
            elif goods[i][1] == package_size[j] and goods[i][0] < cell[i - 1][j]:
                cell[i][j] = cell[i - 1][j]
            elif goods[i][1] > package_size[j]:
                cell[i][j] = cell[i - 1][j]
            elif goods[i][1] < package_size[j]:
                a = package_size[j] - goods[i][1] #a=3
                b = cell[i-1][a-1] + goods[i][0]
                if b >= cell[i - 1][j]:
                    cell[i][j] = b
                else:
                    cell[i][j] = cell[i - 1][j]
    return cell

goods = [[2000, 3],
         [1500, 1],
         [3000, 4]]

print(bag(goods))
print(bag(goods)[2][3])

#[[0, 0, 2000, 2000], [1500, 1500, 2000, 3500], [1500, 1500, 2000, 3500]]
#3500

相关文章

  • 算法学习收藏

    动态规划问题 动态规划(最优子结构和重叠子问题的比较) 动态规划解决01背包问题 01背包问题 最优二叉查找树 《...

  • 初识动态规划

    0-1 背包问题 备忘录 动态规划-二维数组 动态规划-一维数组 0-1 背包问题升级版 回溯算法 动态规划-二维...

  • 2019-07-10 数据结构和算法(妙味杜鹏)

    八皇后 A *寻路 背包问题(动态规划方法) 背包问题(贪心算法)

  • 动态规划

    0-1背包问题 自己实现的0-1背包问题的动态规划解法,先贴上吧,动态规划原理解释有空再写。

  • 2022-02-19 动态规划高频题专题【1】

    动态规划基本类型 dp基础 背包问题 打家劫舍 股票问题 子序列问题 进阶动态规划 深入理解动态规划过程 定义dp...

  • 动态规划.背包问题

    动态规划 之 0-1背包问题 【背包问题】 现有n个物品,价值为`$$v_1,v_2....v_n$$ 重量为 现...

  • 动态规划 背包问题

    1.问题描述 有n个物体有重量和价值两个属性,一个能承重一定重量的背包。问怎么选择物体能实现背包里的价值最大化。 ...

  • 动态规划 背包问题

    本篇博文参考此博文,该博文PPT非常有助理解 问题描述:给定n种物品和一背包。物品i的重量是wi,其价值为vi,背...

  • 背包问题(动态规划)

    原理参见 屈婉玲老师 算法设计与分析 ORZ

  • 动态规划:背包问题

    动态规划,都可以画网格解决! 背包问题 假设你是个小偷,背着一个可装4 磅东西的背包。你可盗窃的商品有如下3 件:...

网友评论

      本文标题:动态规划:背包问题

      本文链接:https://www.haomeiwen.com/subject/ptziehtx.html