动态规划
文章平均质量分 54
_忽如远行客
人一能之,已百之;人十能之,己千之.果能此道矣,虽愚必明,虽柔必强。
展开
-
一道题看懂如何解决动态规划问题并优化(找零钱问题)
目录找零钱问题:最简单的:暴力搜索针对冗余计算的进一步优化:记忆化搜索进一步优化:动态规划动态规划的简化: 去掉枚举过程,简化动态规划方程总结文章内容来自对牛客网左神课程的整理。很多同学(包括今天之前的我)都认为动态规划很难,其实很大程度上是因为不知道动态规划是怎么从其他算法一步步优化演变来的,上来就介绍动态规划的方法论,难免接受度比较低。“输出是最好的学习方法...原创 2018-12-24 11:22:13 · 640 阅读 · 0 评论 -
【经典动态规划问题】—走楼梯
动态规划的关键点:1、找状态,找出能代表状态的元素作为矩阵下标2、找到状态间的依赖关系,从最简单的情况依次计算3、复杂的问题求dp[i][j]可能要考虑多种情况。动态规划应用中非常经典的走楼梯问题:有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。为了防止溢出,请将结果Mod 1000000007给定一个正整数int n,请返回一个数,代表上楼的方式数。保...原创 2018-12-24 21:50:54 · 593 阅读 · 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 · 325 阅读 · 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 · 525 阅读 · 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 · 1986 阅读 · 0 评论