
动态规划
文章平均质量分 54
_忽如远行客
人一能之,已百之;人十能之,己千之.果能此道矣,虽愚必明,虽柔必强。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一道题看懂如何解决动态规划问题并优化(找零钱问题)
目录 找零钱问题: 最简单的:暴力搜索 针对冗余计算的进一步优化:记忆化搜索 进一步优化:动态规划 动态规划的简化: 去掉枚举过程,简化动态规划方程 总结 文章内容来自对牛客网左神课程的整理。 很多同学(包括今天之前的我)都认为动态规划很难,其实很大程度上是因为不知道动态规划是怎么从其他算法一步步优化演变来的,上来就介绍动态规划的方法论,难免接受度比较低。 “输出是最好的学习方法...原创 2018-12-24 11:22:13 · 712 阅读 · 0 评论 -
【经典动态规划问题】—走楼梯
动态规划的关键点: 1、找状态,找出能代表状态的元素作为矩阵下标 2、找到状态间的依赖关系,从最简单的情况依次计算 3、复杂的问题求dp[i][j]可能要考虑多种情况。 动态规划应用中非常经典的走楼梯问题: 有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。为了防止溢出,请将结果Mod 1000000007 给定一个正整数int n,请返回一个数,代表上楼的方式数。保...原创 2018-12-24 21:50:54 · 662 阅读 · 0 评论 -
【经典动态规划问题】最长上升子序列 LIS
目录 最长上升子序列: O(N^2)动态规划: O(N*logN):贪心+二分 最长上升子序列: 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < i...原创 2018-12-25 11:24:28 · 360 阅读 · 0 评论 -
【经典动态规划问题】0-1背包问题
0,1背包问题 一个背包有一定的承重cap,有N件物品,每件都有自己的价值,记录在数组v中,也都有自己的重量,记录在数组w中,每件物品只能选择要装入背包还是不装入背包,要求在不超过背包承重的前提下,选出物品的总价值最大。 每个物品只有1个,给定物品的重量w价值v及物品数n和承重cap。请返回最大总价值。 状态:dp[i][j] 存储物品0,...i存储到承重为j的背包中的最大价值 边界讨...原创 2018-12-25 15:39:44 · 572 阅读 · 0 评论 -
【经典动态规划问题】字符串编辑最小代价问题
目录 题目 分析 状态 边界值讨论 一般情况讨论 代码实现 题目 字符串A编辑成字符串B可有三种操作: 插入、删除、修改,对应的代价为c0,c1,c2,给出字符串A和字符串B以及各自长度m、n,返回字符串A编辑成字符串B的最小代价。 分析 状态 dp[i][j]表示A[0,...i-1]编辑为B[0,...j-1]需要的代价,i,j指的是当前A、B中的字符个数 边界值...原创 2018-12-25 16:37:14 · 2088 阅读 · 0 评论