IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【动态规划】动态规划最强套路总结 -> 正文阅读

[数据结构与算法]【动态规划】动态规划最强套路总结

普通递归思路

背包最多装6公斤,现有3件物品

123
重量234
价格135

求背包能装下的最大价值?
首先我们回到小学,把它看成一道智力题,我们会用下图的方法解决。就是从6开始每次都有三个选择,选择后继续用剩下的重量选择,比如6公斤选了1号物品,那么接下里用4公斤的去做选择,以此类推,最后我们把得到的结果比较,得到5为结果。
在这里插入图片描述
那么我们使用计算机解决问题,也是类似,告诉计算机选择,以及比较大小:

选择

  • 选择 1 :(1+ 4公斤)
  • 选择 2 :(3+ 2公斤)
  • 选择 3: (5+ 0公斤)

比较:max[(1+ 4公斤),(3+ 2公斤),(5+ 0公斤)]

对4公斤选择

  • 选择 1 :(2+ 2公斤)
  • 选择 2 :(4+ 0公斤)
  • 选择 3: 不行

比较:max[(2+ 2公斤),(4+ 0公斤)]

这就是我们很朴素的递归解决问题的思路

dp[i]=max[ (v[j]+ dp[i-w[j])]

dp[i]:第i公斤能装载的最大价值
w[j]:第j件物品的重量
v[j]:第j件物品的价值


动态规划如何想到的

在上面我们发现,6公斤的背包 依赖4公斤和2公斤能装下的最大价值,那么我们就可以先解决4公斤和2公斤的问题,也就是将自顶向下变为自底向上,并且我们发现2公斤我们算了两遍,自底向上可以很好的复用子问题的结果
在这里插入图片描述 所以我们就能

dp[0]=0
dp[1]=0
dp[2]=max[dp[2-1]+2, , ]=1

dp[6]=max(dp[4]+1,dp[2]+3,dp[0]+5)=5
过程如下

在这里插入图片描述
总结:


横向dp表格与纵向dp表格的区别

思路:x公斤背包的装某件w公斤物品 分为装得下(w<=x)和根本装不下(w>x)
而装得下我们就可以选择装(涉及将背包某些位置腾出来)还是不装,这就根据装和不装结果的大小

上面画了6个dp树状图,可以化为表格:

横向

在这里插入图片描述
横向是固定物品件数,更换重量,三趟,可以把步骤变为下
在这里插入图片描述

纵向

在这里插入图片描述
纵向是固定重量,更换物品件数,6趟 可以把步骤拆分如下
在这里插入图片描述


总结

我们使用递归总结dp表达式,使用自底向上写代码


题型总结

用重量装满背包,价值最大
用票时装满行程,票价最小 983. 最低票价
用硬币装满额度,数量最少 322. 零钱兑换


  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:59:23  更:2021-09-08 11:00:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:14:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码