动态规划:0-1背包问题及空间优化

题目:如图所示的一个20kg容量的背包和5个物品,求背包最多能装下多少价值的物品?

0-1背包问题其实很简单!

搞清楚下面3个问题:

1.能不能装下?

2.能装的话,装或不装哪个的价值要高?

3.开辟数组来填空

(1)初始或边界的空怎么填?赋值

(2)其它空怎么填?装不下,保留上一个状态的值;能装,转移方程

4.空间怎么优化一下?降维(高阶玩法,新手搞清楚前面3个问题即可。)

 

# Python3代码实现
def Knapsack():
    for k in range(1, n+1):
        for C in range(1, W+1):
            if w[k] > C: # 装不下
                B[k][C] = B[k-1][C]
            else:
           
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值