•Dynamic Programming
leetcode中动态规划相关的题型
爱吃骨头的猫、
嘘!
展开
-
LeetCode--265. 粉刷房子Ⅱ(动态规划)
粉刷房子Ⅱ(动态规划)1. 题目描述2. 题目分析3. C语言实现1. 题目描述难度:困难2. 题目分析这道题目是256. 粉刷房子的进阶题,其实解题思路和256题是一样的:动态规划256题颜色是3种,但是本题的颜色变为了k种,但是整体的思路还是一样的,我们申请一个二维数组dp[n][k]来存放每个房子的每个颜色的最低花费,时间复杂度为O(nk)。3. C语言实现代码如下:...原创 2020-04-03 16:05:46 · 3920 阅读 · 0 评论 -
LeetCode--256. 粉刷房子(动态规划)
粉刷房子(动态规划)1. 题目描述2. 题目分析3. C语言实现1. 题目描述难度:简单2. 题目分析这道题目是一道典型的动态规划问题,如果我们只把目光放在一个最少花费的身上,状态转化方程并不容易想出来,但是如果我们着眼于每一个颜色的最少花费,那么状态转化方程可以很容易地写成:初始态 red[0] = costs[0][0] blue[0] = costs[0][0] gre...原创 2020-04-02 22:59:01 · 3714 阅读 · 0 评论 -
LeetCode--174.地下城游戏(动态规划)
地下城游戏(动态规划)1. 题目描述2. 题目分析3. C语言实现1. 题目描述难度:困难2. 题目分析这道题是64.最小路径和的进阶版。但是这一题我们不能从左上向右下的顺序,而是**要从最后一步开始,从右下到左上的顺序。**我们知道骑士最少的健康点数为1,所以最后一步的点数为1,然后根据每个网格中的数据依次计算,到某个网格时的所剩余的最低健康点数。动态方程为:对于M x N的网格:...原创 2020-04-01 19:01:07 · 3156 阅读 · 0 评论 -
LeetCode--139. 单词拆分(动态规划)
单词拆分(动态规划)1. 题目描述2. 题目分析3. C语言实现4. Python实现1. 题目描述难度:中等2. 题目分析这道题的难点在于示例3,字符串包含字典中的所有单词,但是就是无法由字典中的单词组成,要么就是多个字符,要么就是少个字符,所以在使用动态规划方法的时候要考虑这种情况的发生。- 动态规划我们先考虑这样一个子问题:前i个子串是否能够被字典中的单词组成,如果可以的话,我...原创 2020-03-30 17:10:18 · 3250 阅读 · 0 评论 -
LeetCode--91. 解码方法(动态规划)
解码方法(动态规划)1. 题目描述2. 题目分析3. C语言实现1. 题目描述难度:中等2. 题目分析分析这道题,我们要知道以下几点:‘0’的作用‘0’出现在字符串开头时,肯定是无法编码的,直接返回0;如果字符串中出现‘0’字符并且‘0’字符无法和前面的字符匹配,比如‘30’,‘00’等,肯定也是无法编码的,直接返回0;‘01’不能匹配成1;特殊的边界条件如果输入为...原创 2020-03-27 14:17:27 · 3164 阅读 · 0 评论 -
LeetCode--85.最大矩形(单调栈)
最大矩形(单调栈)1. 题目描述2. 题目分析3. C语言实现1. 题目描述难度:困难2. 题目分析这道题目似曾相识啊,最大矩形面积的问题我们在LeetCode84.柱状图中最大的矩形也遇到过类似的问题,在84题中,我们应用了单调栈的方法,实现了O(n)的时间复杂度。在这一题中,我们可以将每一层都看做一个输入,比如第一层可以看做84题中的输入[1, 0, 1, 0, 0],这一层的最大矩...原创 2020-03-26 13:06:04 · 4036 阅读 · 0 评论 -
LeetCode--64. 最小路径和(动态规划)
最小路径和(动态规划)1. 题目描述2. 题目分析3. C语言实现1. 题目描述难度:中等2. 题目分析这道题目是62题.不同路径的延伸,解题思路基本一样的,是通过动态规划来实现的:- 动态规划我们需要知道的有这么几点:m=1或者n=1的情况下,路径只有一条,所以最短路径只有一个,就是路径上所有元素的和在mxn的网格下,其最短路径等于(m-1)x n网格的最短路径与 m x (...原创 2020-03-20 23:07:35 · 3191 阅读 · 0 评论 -
LeetCode--62.不同路径(排列组合,动态规划)
不同路径(排列组合,动态规划)1. 题目描述2. 题目分析3. C语言实现3.1 动态规划3.2 排列组合1. 题目描述难度:中等2. 题目分析这是一道典型的动态规划问题,这道题有两种解法,一种是动态规划,一种是排列组合:- 动态规划假设我们要对m=7, n =4的网格进行计算(如下图所示):那么所有可能的路径分为两种,一种是从上方过来的,一种是从左边过来的,就如两个箭头标的方向一...原创 2020-03-19 19:36:07 · 4927 阅读 · 0 评论 -
LeetCode--70. 爬楼梯(动态规划)
爬楼梯(动态规划)1. 题目描述2. 题目分析3. C语言实现1. 题目描述难度:简单2. 题目分析爬楼梯这道题是一个很典型的问题了,这是一道经典的动态规划的问题:动态规划不难发现,这个问题可以被分解为一些包含最优子结构的子问题,即它的最优解可以从其子问题的最优解来有效地构建,我们可以使用动态规划来解决这一问题。时间复杂度O(n), 空间复杂度O(n)。3. C语言实现代...原创 2020-03-18 23:00:01 · 3255 阅读 · 0 评论