首页 > 其他分享 >动态规划笔记

动态规划笔记

时间:2022-10-22 21:23:32浏览次数:123  
标签:递归 笔记 序列 字符串 动态 规划 解法

初识:labuladong

动态规划遵循一套固定的流程:递归的暴力解法 -> 带备忘录的递归解法 -> 非递归的动态规划解法。

动态规划算法做的就是穷举 + 剪枝

递归算法的时间复杂度怎么计算?子问题个数乘以解决一个子问题需要的时间。

带「备忘录」的递归算法,把一棵存在巨量冗余的递归树通过「剪枝」,改造成了一幅不存在冗余的递归图,极大减少了子问题(即递归图中节点)的个数。

带备忘录的递归解法的效率已经和动态规划一样了。实际上,这种解法和动态规划的思想已经差不多了,只不过这种方法叫做「自顶向下」,动态规划叫做「自底向上」。

动态规划问题的第一个性质:重叠子问题。

状态转移方程直接代表着暴力解法。

「最优子结构」性质:原问题的解由子问题的最优解构成。要符合「最优子结构」,子问题间必须互相独立,互不干扰的。

关于最长公共子序列:力扣链接

公共子序列和公共子串不一样!!!

子串的定义指一个字符串删掉其部分前缀和后缀后形成的字符串;一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符后组成的新字符串。

最长公共子序列是可以不连续的,但是序列的顺序不能改变。LCS 可以描述两段文字之间的“相似度”,即他们的雷同程度,从而能够用来辨别抄袭。
最长公共子串的要求更高,必须是连续的,顺序不变的。

算法思想:摘录

 

 

 

伪代码

 

 

Java实现(1)两个数组实现

Java实现(2)一个数组实现

python实现


 

摘录:动态规划  

非常全面,条理清晰,案例+总结

标签:递归,笔记,序列,字符串,动态,规划,解法
From: https://www.cnblogs.com/silvia-cloud2/p/16816800.html

相关文章

  • [Oracle]复习笔记-SQL部分内容
    Oracle笔记--SQL部分整体框架语句的执行顺序:from→where→groupby→having→select→orderbyselect*from*where*groupby*having*orderby*关于selec......
  • vue笔记 10 webpack 安装命令npm install [email protected] -g
             ......
  • 基础电脑学习笔记大杂烩
    ipconfig查看IP地址ipconfig/all可以查看更详细的地址,如网卡的物理地址(全球唯一性)MAC地址pingIP地址或域名(两台计算机是否可以通讯)比如:pingwww.baidu.com,如果......
  • Vue 笔记9 模块化开发
     匿名函数  代码复用性    CommonJS规范。Node.js是实现     知识点:type="module"隔离作用域              ......
  • 20221022学习笔记-爬虫基础
    爬虫概述爬虫的概念:网络爬虫(又称为网络蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动抓取互联网信息的程序。原则上,客......
  • Vue 笔记8 插槽slot、编译作用域
                          ......
  • Vue笔记7 父子组件访问
                      ......
  • c语言—数据存储进阶篇—笔记
    数据存储还是比较麻烦的,因为要数数和做加减运算(原码、反码、补码),但因为牵扯到内存硬件,所以比较容易理解。1.数据类型char//字符数据类型short//短整型int//整形long//长......
  • [笔记]局域网知识
    ......
  • 第五章学习笔记
    第5章定时器及时钟服务5.1硬件定时器定时器是由时钟源和可编程计数器组成的硬件设备。时钟源通常是一个晶体振荡器,会产生周期性电信号,以精确的频率驱动计数器。使用一......