
动态规划
文章平均质量分 66
michaelbinwang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划入门
(1)用 DP 做的题大多数返回值是int/boolean, 求max/min,不能打乱原来输入顺序。 (2)动态规划有两个重要定义,一个叫 "optimal substructure",另一个叫 "overlap subproblem". 各种排序 / Tree 类问题中,都会用到 divide & conquer 的思想,去把问题分成若干个 "disjoint" subprob转载 2016-12-25 00:16:25 · 415 阅读 · 0 评论 -
subarray 划分类
(1) 所谓 “划分类” DP,是指给定原数组之后,将其划分为 k 个子数组,使其 sum / product 最大 / 最小的 DP 类问题。转载 2016-12-26 01:33:09 · 368 阅读 · 0 评论 -
入门House Robber
House Robber (1) 先从 Top-Down 的角度来想,如果我们定义 maxProfit(n) 为长度为 n 的 array 中所能得到的最大利益的话,不难看出在计算 maxProfit(n) 的时候,它的值只和前两个 subproblem 相关,即 maxProfit(n - 1) 和 maxProfit(n - 2). 关键是找到这个!! 由此我们发现了 D转载 2016-12-25 01:34:00 · 251 阅读 · 0 评论 -
Paint fence and house
Paint House (1) 二维dp = 两个属性: 一个属性代表房子的下标,另外一个属性代表那个下标房子的颜色。 (2) optimal substructure之间存在比较,所以需要存储3个状态,最后取min,max比较。而paint fance不存在比较,只在意四则运算关系,因此只有一个状态即可。转载 2016-12-25 10:22:39 · 237 阅读 · 0 评论 -
记忆化搜索DP
Longest Increasing Path in a Matrix (1) 本质上是DFS加上一个cache,每次在dfs前check一下cache,每次dfs后返回res前把res存到cache中方便下次直接调用。 (2) optimal substructure是如何与n-1,或者n-2规模的子问题取得联系转载 2016-12-26 01:33:50 · 478 阅读 · 0 评论