动态规划
以题目为例训练动态规划
ll的小唐
这个作者很懒,什么都没留下…
展开
-
动态规划之1143. 最长公共子序列
本题使用动态规划去求解,由于涉及到两个字符串所以第一眼看上去就与之前简单地动态规划有所不同。所以需要使用二维数组来保存彼此之间的最长相同字符串。是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。最长公共子序列是 "ace" ,它的长度为 3。最长公共子序列是 "abc" ,它的长度为 3。两个字符串没有公共子序列,返回 0。是这两个字符串所共同拥有的子序列。,返回这两个字符串的最长。原创 2023-08-07 09:41:09 · 36 阅读 · 1 评论 -
动态规划之300. 最长递增子序列
是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。最长递增子序列是 [2,3,7,101],因此长度为 4。,找到其中最长严格递增子序列的长度。原创 2023-08-06 22:42:52 · 44 阅读 · 0 评论 -
动态规划基础题之三步问题
有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。原创 2023-08-05 23:49:07 · 40 阅读 · 1 评论 -
动态规划之64. 最小路径和
请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。本题使用动态规划,将问题拆分成小问题,寻找小问题之间的递推规律。因为路径 1→3→1→1→1 的总和最小。每次只能向下或者向右移动一步。给定一个包含非负整数的。原创 2023-08-06 10:03:28 · 47 阅读 · 0 评论 -
动态规划之152. 乘积最大子数组
比如:nums=[2,-2,-1]。又由如果当前数是负数那么乘上的数越小值越大,反之乘上的数越大值越小的特点可以得到需要将当前递推式分隔成两种可能性,nums[i]大于等于0或者小于0。故还需要维护一个最小值的数组。,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。本题使用动态规划去求解,但直接使用前后递推的话不满足最优子结构的要求,结果不能为 2, 因为 [-2,-1] 不是子数组。子数组 [2,3] 有最大乘积 6。是数组的连续子序列。原创 2023-08-06 10:50:26 · 35 阅读 · 0 评论