算法
rose_gong
这个作者很懒,什么都没留下…
展开
-
找短板1:柱状图中的最大矩阵面积
柱状图中的最大矩阵面积二值矩阵中找元素全为1的面积最大矩阵原创 2015-07-26 20:18:31 · 1378 阅读 · 0 评论 -
双重DP实例2:K次购买股票的最大收益
K次购买股票的最大收益题目给定一系列的股票价格prices和最大购买次数k,求最大收益。两笔交易不能交叉。问题解析代码时间复杂度分析原创 2015-07-26 19:06:43 · 890 阅读 · 0 评论 -
滑动窗口1:最大窗口子串
最大窗口子串线段覆盖的最多点数原创 2015-07-26 22:52:50 · 645 阅读 · 0 评论 -
多退少补1:分配最少糖果数
分配最少糖果数原创 2015-07-26 20:21:48 · 534 阅读 · 0 评论 -
找短板2:
有一类问题,输入往往是一维数组,求解最值。表面看是一个普通的优化问题,直接想到用动态规划求解。但是在寻找最优子结构的时候,我们发现这个优化问题的最优子结构并不是那么清晰。这个时候我们可以看看这个问题可否转化为计算每个位置的短板。短板的唯一性决定了短板与位置一一对应。一旦能转化为短板问题,问题往往就能在o(n)时间解决。容器最大容量题目输入一维数组,数组中每个值相当于隔板的高度,求数组中任意两隔板间盛原创 2015-07-26 22:31:17 · 588 阅读 · 0 评论 -
双重DP实例1:回文分割
回文分割双重DP的定义:有的问题具有最优子结构,可以使用动态规划求解。但是在求解该最优子结构时,需要使用另外一个问题的最优子结构。这个时候我们就必须使用双重动态规划进行求解题目:将一个字符串分割成若干个回文子串,求最少的切割次数。问题分析我们使用一维表dp记录从i开始到末尾(第len个位置)回文子串的最小个数(i从0开始)。则状态方程: dp[i]=maxj(1+dp[j+1])dp[i] = m原创 2015-07-26 18:59:38 · 647 阅读 · 0 评论 -
二维DP的最优子结构问题
在碰到二维数组的优化问题时,我们先看看该问题是否有最优子结构。二维数组相比起一维数组,最优子结构的查找困难在于方向的控制。最常见的是从“左上”到“右下”,但是结合实际情况时,我们也会碰到“右下”到“左上”的题目,或者条件不同时方向不同,方向的数量也可能不同。原创 2015-07-26 23:08:18 · 577 阅读 · 0 评论