
动态规划
文章平均质量分 84
富春山居_ZYY(已黑化)
╭( ′• o •′ )╭☞就是这个人!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【动态规划】不同的子序列
文章目录一、题意分析二、思路分析三、代码结果四、代码升级话不多说,上题!牛客链接题目:给定两个字符串S和T,返回S子序列等于T的不同子序列个数有多少个?字符串的子序列是由原来的字符串删除一些字符(也可以不删除)在不改变相对位置的情况下的剩余字符(例如,"ACE"is a subsequence of"ABCDE"但是"AEC"不是)例如:S=“nowcccoder”, T = “nowccoder”返回3一、题意分析字符串子序列概念:根据题目所述,字符串的子序列就是在不改变字符的位置的情原创 2022-01-09 20:49:51 · 1532 阅读 · 43 评论 -
【动态规划】用全C站最简单易懂的语言讲明白编辑距离问题
文章目录题目描述思路分析图例展示代码展示编辑距离问题!是动态规划问题中看似困难实际上确实也没那么简单的一道题,但一旦掌握了思想,代码的书写就会变得万分简单,这次博主将会用全C站最为简单易懂的语言——中国话,来向大家好好讲解一下这道题。牛客链接题目描述给定两个单词word1和word2,请计算将word1转换为word2至少需要多少步操作。你可以对一个单词执行以下3种操作:a)在单词中插入一个字符b)删除单词中的一个字符c)替换单词中的一个字符示例:word1 :“a”word2:“原创 2021-12-24 21:34:51 · 995 阅读 · 28 评论 -
【动态规划】花式解决‘分割回文串 ii’问题(详)
文章目录初级代码代码升级1.回文串动归2.综合动归3.奇思妙想最学习动态规划思想的路上,遇见了‘分割回文串问题’,如临大敌啊,题目听起来蛮简单,思考起来却也没那么容易,比解决问题更头疼的是如何将解决方法进行优化,使得时间空间复杂度尽量的小,经过了反复的挣扎思考,终于总结出来了这一篇分割回文串 ii 的文章,花式解决该问题,总有一款适合你。牛客链接题目:给出一个字符串s,分割s使得分割出的每一个子串都是回文串计算将字符串s分割成回文分割结果的最小切割数例如: 给定字符串s=“aab”,返回1,原创 2021-12-20 21:13:38 · 860 阅读 · 42 评论 -
【动态规划】绝X不翻车的01背包问题(详)
文章目录代码实现代码升级在动态规划中有这么一种背包问题,比较困扰,听一次会一次,过几天又忘一次,因此写一篇博客来详细的说明一下01背包问题,听懂不翻车!领扣链接题目:有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小和数组 V 表示每个物品的价值。问最多能装入背包的总价值是多大?注:A[i], V[i], n, m 均为整数你不能将物品进行切分你所挑选的要装入背包的物品的总大小不能超过 m每个物品只能取一次m <= 1000并且len(A),len(V原创 2021-12-16 17:15:33 · 1118 阅读 · 35 评论 -
【动态规划】带权值的最小路径和
实际上,这道题就是三角矩阵和求路径的融合版本,知晓前两个题的解法,带权值的最小路径和可以直接拿下。三角矩阵链接求路径链接牛客链接题目:给定一个由非负整数填充的m x n的二维数组,现在要从二维数组的左上角走到右下角,请找出路径上的所有数字之和最小的路径。注意:你每次只能向下或向右移动。分析思路:实际上本题的思路也就是求从(0,0)坐标到坐标(i,j)的最短路径和,第一行的坐标(0,j)只能被(0,j-1)坐标向右移动一步得到,第一列的坐标(i,0)只能被(i-1,0)坐标向下移动一步得到,这两原创 2021-12-15 11:14:40 · 1588 阅读 · 5 评论 -
【动态规划】求路径
文章目录常规解法数学解法今天解一道动态规划问题中较为简单易于理解的一题,求路径牛客链接题目:一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等于100,并保证计算结果在int范围内数据范围: 0<n,m <=100,保证计算结果在32位整型范围内常规解法分析思路:从起点到终点的路径实际上可以分解为从起点到坐标(i,j)的路径,根据题意,只能向下移动或者向右移动原创 2021-12-14 23:49:39 · 2576 阅读 · 6 评论 -
【动态规划】三角矩阵
文章目录自顶向下自底向上O(N)空间三角矩阵之类的题主要就是求最小距离,之后遇见有关于矩阵、网格、字符串间的比较问题,用一维动归难以解决或者难以理解的情况下,可以考虑着用二维动归,接下来就用三角矩阵案例来介绍一下动归问题的各种思想。牛客链接题目:给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字,例如,给出的三角形如下:[[20],[30,40],[60,50,70],[40,10,80,30]]最小的从顶部到底部的路径和是20 + 30 + 50 + 10原创 2021-12-13 16:25:28 · 1061 阅读 · 8 评论 -
【动态规划】拆分词句
今天继续深入学习动态规划,分析“拆分词句”这一案例,解题的关键和难点主要在于问题状态的分析。牛客链接题目:给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。例如:给定s=“nowcode”;dict=[“now”, “code”].返回true,因为"nowcode"可以被分割成"now code".如果没有学习过动态规划思想的同学,面对这样的一个问题多少有点一筹莫展,看似简单的问题却不知怎么原创 2021-12-11 11:10:01 · 637 阅读 · 3 评论 -
【动态规划】斐波那契数列
文章目录递归思想动归思想动归思想(改良)关于斐波那契数列,相信学过函数递归的友友们肯定晓得这是啥,不过为加强动态规划的思想学习,本居开了新的专题——动态规划,在这里将会简要介绍一下动态规划的思想,用该思想来开启一种高效的斐波那契数列的求解之法,并以该例子为开头,深入探究学习动态规划。啥是动态规划?用人话来解释就是大事化小,小事化了的分治思想好的,这话好像在哪见过,没错,在学习函数递归的时候,用的就是该思想,但是有所不同的是,动态规划在分治的过程中,对小问题处理好的结果进行了保存,等到之后在处理更大规原创 2021-12-10 21:14:01 · 367 阅读 · 0 评论