多维多重背包问题_动态规划--背包问题

本文介绍了基于动态规划的背包问题,包括0-1背包(无价值与有价值)、完全背包和多重背包。重点讨论了0-1背包和完全背包的解析,强调理解这两类问题对于解决背包问题至关重要。多重背包问题通过转化为0-1背包问题来求解。
摘要由CSDN通过智能技术生成

b6a6db4405521d637f6988c62befeb66.png

基于动态规划的背包问题,可是面试高频啊,可以抽象或改编成很多问题,要是没接触过一下就会被它拦住。

其实背包问题总共类型是三种,分别是0-1背包问题,完全背包问题、多重背包,其中0-1背包分两类,有价值与无价值,下面就以上四种,细细的分享一下个人的理解,也希望能帮看文章的各位理清思路。

可以详细理解一下0-1背包及完全背包,掌握住这两种,背包基本就问题不大了。

不解之处欢迎留言交流。

0-1背包问题-无价值

在n个物品中挑选若干物品,背包的大小为m,每个物品的大小为A[i],每件物品只能选一次,最多能装多少?
例子1:
输入: A = [3,4,8,5], m=10
输出:9
例子2: 输入:A = [2,3,5,7], m=12 输出:12

解析

初始状态DpMap = [0]*m+1, 表示背包容量为index时能装下的最大重量
转移矩阵:dp[j] = max(dp[j-A[i]]+A[i], dp[j])
dp[j-A[i]]表示容量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值