首页 > 其他分享 >动态规划基础知识点(包含文档)

动态规划基础知识点(包含文档)

时间:2024-03-18 14:00:33浏览次数:21  
标签:知识点 背包 题解 文档 序列 动态 规划 dp

动态规划知识点

我也不知道为啥要收fei,我普通上传,但是平台好像不能直接看,大家可以试看,因为该文档就两页,还没完善

1.动态规划与贪心的区别

(1)求解问题区别:

贪心:

顾名思义,就是尽量的贪心使得结果利益最大化,从局部最优推出全局最优,比如:桌子上有三张钞票,面额各不相同,你只能取两次,每次只能取一张,那样子怎么取呢?

很明显,就是每次取所有钞票种面额最大的一张

这里的局部最优:每次取的时候的最大面额

全局最优:使得结果最大

动态规划:

简称dp,如果一个问题有很多重叠子问题,那么用动态规划是最有效的。所以动态规划是需要从上一个状态推出后面状态的(和贪心最大的区别),这也就是为什么dp解题都有一个公式,这个公式叫递推公式。递推公式很重要,其实最重要的还有其他几点,等下说。

2.动态规划经典题型

动态规划是一种解决优化问题的算法思想,它可以解决许多不同类型的问题,包括但不限于以下几种:

最短路径问题:在一个有向图或者无向图中,找到两个节点之间最短路径的长度。(dp[i][j]:存到该点的最小路径)

最长公共子序列问题:给定两个序列,找到它们最长的公共子序列的长度。

最大子数组和问题:给定一个整数数组,找到一个连续子数组,使得该子数组的和最大。

最长递增子序列问题:给定一个序列,找到一个最长的递增子序列的长度。

简单题:

爬楼梯,斐波那契数列数列

(题解链接:

爬楼梯:LeetCode 爬楼梯(动态规划题解)-CSDN博客

斐波那契数列:斐波那契数列规划题题解-CSDN博客

中等:

四种背包(01背包,完全背包,多重背包,分组背包),打家劫舍,

买卖股票的最佳时机,最长公子序列,最长递增子序列(题解链接:LeetCode 300. 最长递增子序列 题解(C,C++) (包含动态规划与贪心的区别的资料)-CSDN博客),最长连续递增子序列,最长重复子数组,最大子序和

背包:(我之前的题解中有一维写法哦,二维写法空间复杂度较高,因此我并未使用,一维写法:01背包 与 emo题目背景(周超人的遗憾) 的爱恨情仇-CSDN博客

它二维数组是dp[i][j],从0到i这些物品里面选,背包容量为j,dp[i][j]的意思是它能装下的最大价值

3.动态规划最重要的五步:

(1)确定dp数组及下标的含义(dp[i])

(2)确定递推公式

(3)确定如何初始化

(4)确定遍历顺序

(5)打印数组

标签:知识点,背包,题解,文档,序列,动态,规划,dp
From: https://blog.csdn.net/2301_79293429/article/details/136806858

相关文章

  • C语言最重要的知识点(6)
    第六章指针变量的本质是用来放地址,而一般的变量是放数值的。1、int *p中  *p和p的差别:简单说*p是数值,p是地址!*p可以当做变量来用;*的作用是取后面地址p里面的数值 p是当作地址来使用。可以用在scanf函数中:scanf(“%d”,p);2、*p++和(*p)++的之间的差别:改错题目中很重要......
  • 基于SpringBoot的“乐校园二手书交易管理系统”的设计与实现(源码+数据库+文档+PPT)
    基于SpringBoot的“乐校园二手书交易管理系统”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示系统首页界面图用户注册界面图二手图书界面图留言反馈界面图个人中心界面图管理员......
  • 基于SpringBoot的“书籍学习平台”的设计与实现(源码+数据库+文档+PPT)
    基于SpringBoot的“书籍学习平台”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示平台首页界面图用户注册界面图付费专区界面图个人中心界面图后台登录界面图管理员功能界面图......
  • 毕业设计3170篮球鞋推荐小程序的设计与实现【源代码+文档+调试+讲解视频】
    摘要本摘要简要介绍篮球鞋推荐小程序的开发背景、目的、主要功能以及实现的技术手段。系统分为服务器端和客户端,旨在为用户提供便捷的篮球鞋推荐和资讯服务,同时方便管理员进行后台管理。开发技术微信小程序;JSP技术;JAVA语言;MYSQL数据库微信小程序微信小程序是一种不需要......
  • 计算机等级考试:信息安全技术 知识点十二
    1、在SQL注入程序中,入侵者通常将未授权的数据库语句插入或注入有洞的SQL数据信道中。通常情况下,攻击所针对的数据信道包括存储过程和Web应用程序输入参数。然后这些注入的语句被传递到数据库中并在数据库中热行。使用SQL注入,攻击者可以不受限制地访问整个数据库:利用程序对用户......
  • python动态加载指定的模块
    importimportlibimportsysimportosimportpkgutilimportreimportinspectclassTestInstance:#初始化方法,当创建TestInstance对象时调用def__init__(self,projectName):#初始化实例变量projectName,存储项目名称self.projectName=......
  • 消息队列知识点总结
    一.什么是中间件?中间件是一类提供系统软件和应用软件连接、便于软件各部分之间沟通的软件,应用软件可以借助中间件在不同技术架构之间共享信息与资源。常用的中间件包括Redis、消息队列、分布式存储等。以智能BI平台项目为例。现有的系统包括图表管理、用户管理等,随着系统应......
  • ant design vue动态显示隐藏表格列字段,支持记忆功能
    本文档内容下载:动态显示隐藏表格列字段,支持记忆功能.docx.zip:​​https://url37.ctfile.com/f/8850437-1036113839-678952?p=4760​​(访问密码:4760)链接:​​https://caiyun.139.com/m/i?135CdoJGCdpkg​​新版本以及新版本代码生成,会自动增加该功能,无需额外修改。仅......
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第1篇:认识Vue3,1. Vue3组合式API体验【附代码文
    全套笔记资料代码移步:前往gitee仓库查看感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~全套教程部分目录:部分文件图片:认识Vue31.Vue3组合式API体验通过Counter案例体验Vue3新引入的组合式API<script>exportdefault{data(){return{count:0......
  • “我的文档”文件夹的配置
      概要“我的文档”文件夹是用户配置文件的一个组件,可用作存储个人数据的统一位置。默认情况下,“我的文档”文件夹是用户配置文件中用作保存的文档的默认存储位置的文件夹。如果您是管理员,则可以在组策略中使用文件夹重定向来修改“我的文档”的位置以驻留在网络共享中。当用......