摘要: 单调栈的定义 单调栈,顾名思义,是维持单调递增或递减的栈 单调栈的性质 单调递增栈 单调递增栈的形式如上,适合寻找,距离他最近的,比他小的,左右两边元素 单调递减栈 与单调递增栈的用法相反 题目 84. 柱状图中最大的矩形 单调递增栈的原理 class Solution { public: int 阅读全文
posted @ 2020-05-31 13:29 美不胜收 阅读(1097) 评论(1) 推荐(0)
摘要: 题意 各种币值的硬币个数充足,如何使用最少的硬币凑出指定的钱 思路 这个题使用动态规划解题。当前的状态只与币值的种类有关,所以是线性动态规划 状态定义: dp[i] : 凑出i块钱,所需硬币的最小个数为dp[i] 状态转移方程: dp[i] = min(dp[i j], j is the value 阅读全文
posted @ 2020-03-20 18:34 美不胜收 阅读(331) 评论(0) 推荐(0)
摘要: 思路 这是一道线性动态规划,当前的状态只与特定数量的前边状态相关。 状态的定义: dp[i] : 小偷偷到第i间房时,偷到的最大金额为dp[i] 状态转移方程: dp[i] = max(dp[i 1], dp[i 2]+nums[i]) 初始状态: dp[0] = 0 dp[1] = nums[0] 阅读全文
posted @ 2020-03-20 18:10 美不胜收 阅读(152) 评论(0) 推荐(0)
摘要: 题意 在一个乱序的数组中,找到最长上升子序列 思路 这是一个动态规划的题目。其中是和一个区间有关,这种动态规划叫做区间型动态规划。这种状态的定义是截止到某一个区间的性质。 所以, 状态的定义: dp[i] : 到i这个位置(包含i),最长上升子序列 状态转移方程: dp[i] = max(dp[j] 阅读全文
posted @ 2020-03-20 17:46 美不胜收 阅读(316) 评论(0) 推荐(0)
摘要: ![](https://img2020.cnblogs.com/blog/1502700/202003/1502700-20200320161943044-1421872138.png) 阅读全文
posted @ 2020-03-20 16:20 美不胜收 阅读(206) 评论(0) 推荐(0)
摘要: 题意 这个题意要理解透了才行,转换成我自己理解的题意: 有一个字符串s,还有一个单词字典wordDict,问题的关键是能否用wordDict里的单词组合出字符串s。 思路 这个题可以使用动态规划来解决。动态规划最重要的是状态的定义,好的状态定义能够使解题非常简便。 状态定义: $dp[i]$:长度为 阅读全文
posted @ 2020-03-20 15:17 美不胜收 阅读(392) 评论(0) 推荐(0)