当前位置: 首页 > article >正文

leetcode动态规划(十五)-完全背包

题目

leetcode上没有纯完全背包题目,可以看卡码网上的题目

完全背包

思路

有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。

完全背包和01背包问题唯一不同的地方就是,每种物品有无限件

在0-1背包中的遍历顺序为

for i in range(n):
    for j in range(bagweight,weight[i]-1,-1):
        dp[j] = max(dp[j],dp[j-weight[i]]+value[i])

在进行背包遍历的时候你从大到小来遍历的,但在完全背包这里每个物品的数量是无限的,那就可以从小到大来进行遍历了,这样在遍历的过程中就会把同一个物品重复装入包中,直到下个物品的价值放到包里超过一直这样放的时候就结束

代码

n , target = 4,5
weight = [1,2,3,4]
value = [2,4,4,5]

dp =[0]*(target+1)

for i in range(n):
    for j in range(weight[i],target+1):
        dp[j] = max(dp[j],dp[j-weight[i]]+value[i])
        
print(dp[-1])


http://www.kler.cn/news/364836.html

相关文章:

  • Elasticsearch基本使用及介绍
  • Java SnakeYaml 反序列化漏洞原理
  • 数据类型【MySQL】
  • Verilog 0x01 基础
  • pycharm导出环境安装包列表
  • 桥接模式,外界与主机通,与虚拟机不通
  • idea中文国际化转码
  • 将md格式的数据展示在页面上
  • 『扩散模型』一篇文章入门DDPM
  • 学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库
  • 舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)
  • 面试应该问什么?
  • 基于深度学习的图像修复系统设计与实现(PyQt5、CodeFormer ffhq-dataset数据集)
  • 贝锐花生壳内网穿透:无需公网IP,远程访问自建WebDAV文件共享
  • 数据分析与查询:矩量与辐角。
  • OpenCV高级图形用户界面(20)更改窗口的标题函数setWindowTitle()的使用
  • 基于LSTM-Transformer混合模型实现股票价格多变量时序预测(PyTorch版)
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day4
  • 3.swoole安装【Docker】
  • 微前端架构新选择:micro-app 框架一文全解析
  • IDEA开发工具使用技巧积累
  • Agilent4339B高阻计测试仪HP4339B原装二手详情资料
  • 1-17课程总结
  • Docker 的网络模式 + 容器间通讯 + TC 流量控制工具
  • 现场总是发生急停,很可能是PLC和设置间网络中断
  • 供电电压和逻辑电压