![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 85
leetcode题目分类--动态规划类
m0_38142029
这个作者很懒,什么都没留下…
展开
-
[前缀和-动态规划] 560. 和为K的子数组(一维前缀和 → 空间优化 → 前缀和+哈希表)
[前缀和-动态规划] 560. 和为K的子数组(前缀和法 → 空间优化 → 前缀和+哈希表)560. 和为K的子数组什么是前缀和?一维前缀和二维前缀和前缀和的应用(*****)思路1:前缀和(O(N^2),O(N))思路2:思路1空间优化(O(N^2),O(1))思路3:前缀和+哈希表(O(N),O(N),推荐)560. 和为K的子数组题目链接:https://leetcode-cn.com/problems/subarray-sum-equals-k/分类:动态规划(前缀和)、哈希表..原创 2020-11-02 23:38:24 · 325 阅读 · 1 评论 -
[动态规划 二分查找] 300. 最长上升子序列(动态规划 → 动态规划 + 二分查找)
[动态规划 二分查找] 300. 最长上升子序列(动态规划 → 动态规划 + 二分查找)300. 最长上升子序列题目分析思路1:动态规划思路2:动态规划 + 二分查找 + 贪心300. 最长上升子序列题目链接:https://leetcode-cn.com/problems/longest-increasing-subsequence/分类:动态规划:dp[i]表示以nums[i]为结尾的最长上升子序列长度,线性查找“nums[0~i-1]内小于nums[i]的元素中的dp最大值”,思路1;二原创 2020-10-16 01:42:19 · 176 阅读 · 0 评论 -
[数学] 292. Nim 游戏(递归 → 动态规划 → 数学规律)
[数学] 292. Nim 游戏(递归 → 动态规划 → 数学规律)292. Nim 游戏题目分析思路1:问题分析(关键) + 递归实现思路2:动态规划空间优化:使用滚动数组思路3:数学规律292. Nim 游戏题目链接:https://leetcode-cn.com/problems/nim-game/分类:数学(根据新概念“Nim游戏”总结数学规律:必胜态、必输态)题目分析本题提出了一个新概念“Nim游戏”,我们可以将其抽象成数学问题,寻找其中的数学规律。这里参考下面的题解,从状态原创 2020-10-13 16:10:45 · 324 阅读 · 1 评论 -
[DFS BFS 动态规划] 279. 完全平方数(回溯法DFS → 动态规划、BFS、数学定理+排除法)
[DFS BFS 动态规划] 279. 完全平方数(回溯法DFS → 动态规划、BFS、数学定理+排除法)279. 完全平方数思路1:回溯法DFS(暴力解)思路2:动态规划(推荐)思路3:BFS(推荐)思路4:数学(记下结论就行)279. 完全平方数题目链接:https://leetcode-cn.com/problems/perfect-squares/分类:回溯法:DFS思想,一趟DFS返回一个划分方案所需要的最少完全平方数个数(思路1);动态规划:辅助数组优化回溯法,dp[i] = 数字原创 2020-10-09 22:59:30 · 274 阅读 · 0 评论 -
[数学 堆 动态规划] 263. 丑数 264. 丑数 II(暴力解 → 小顶堆 、动态规划+三指针)
[数学 堆 动态规划] 263. 丑数 264. 丑数 II(暴力解 → 小顶堆 → 动态规划+三指针)263. 丑数(判断是否为丑数)思路:数学264. 丑数 II(寻找第n个丑数)题目分析思路1:暴力解思路2:小顶堆(推荐)实现遇到的问题思路3:动态规划-三指针法(推荐)263. 丑数(判断是否为丑数)题目链接:https://leetcode-cn.com/problems/ugly-number/分类:数学(丑数的特点:只包含质因数2,3,5)递归实现、迭代实现(拿2,3,5循环除nu原创 2020-10-08 11:54:17 · 183 阅读 · 0 评论 -
[动态规划+优化] 238. 除自身以外数组的乘积(暴力解 → 动态规划 → 空间优化)
[动态规划+优化] 238. 除自身以外数组的乘积(暴力解 → 动态规划 → 空间优化)238. 除自身以外数组的乘积题目分析思路1:暴力解 (时间O(N^2),空间O(1))思路2:左右乘积列表 (双向动态规划,时间O(N),空间O(N))思路3:思路2的空间优化(时间O(N),空间O(1))238. 除自身以外数组的乘积题目链接:https://leetcode-cn.com/problems/product-of-array-except-self/同 剑指 Offer 66. 构建乘积数组 h原创 2020-10-05 00:35:41 · 126 阅读 · 0 评论 -
[动态规划] 198. 打家劫舍 213. 打家劫舍 II(时间空间优化)
[动态规划] 198. 打家劫舍 213. 打家劫舍 II198.打家劫舍(基础题)题目分析思路:动态规划213. 打家劫舍 II(首尾认为是相邻的)题目分析思路1:动态规划 + 一趟遍历思路2:动态规划 两趟遍历(更简单,推荐)198.打家劫舍(基础题)题目链接:https://leetcode-cn.com/problems/house-robber/分类:动态规划题目分析这题简单来说,就是从数组中选择出的一定数量的元素,同时这些元素不能是相邻元素,要求找出满足条件的元素之和的最大值。原创 2020-09-23 18:55:32 · 190 阅读 · 0 评论 -
[回溯 动态规划]131. 132 分割回文串 I II (回溯法→动态规划)
[回溯->动态规划]131. 132 分割回文串 I II (回溯法、动态规划)131. 分割回文串 I(找出所有子串解集)思路1:回溯法(未做优化)算法设计1、变量设置2、回溯函数的设置:3、子串回文的判断:双指针法实现代码思路1优化:动态规划提前构造回文判断数组实现遇到的问题:dp数组下标和substring下标的区间开闭情况不同实现代码132. 分割回文串 II(计算最少分割次数)题目分析:思路:动态规划131. 分割回文串 I(找出所有子串解集)题目链接:https://leetcode-原创 2020-10-28 18:29:36 · 179 阅读 · 0 评论 -
[二叉搜索树(递归练习)]96.95.不同的二叉搜索树 I II (动态规划、递归)
[二叉搜索树(递归练习)leetcode]96.95.不同的二叉搜索树 I II (动态规划、递归)95. 不同的二叉搜索树 II(很好的递归练习题)题目分析思路:递归法算法设计1、如何用递归构建一棵二叉搜索树?2、如何递归构建多个二叉树?实现代码96. 不同的二叉搜索树题目分析思路1:动态规划 + 分治法1、状态设置 + 状态转移方程2、如何体现分治思想?3、dp数组实现时遇到的问题为什么dp[0]要设置为1?实现代码95. 不同的二叉搜索树 II(很好的递归练习题)题目链接:95. 不同的二叉搜索树原创 2020-10-23 14:33:43 · 121 阅读 · 0 评论 -
[单调栈 ]42.接雨水 84.柱状图中最大的矩形(暴力法 -> 单调栈)
[单调栈 leetcode]42.接雨水 84.柱状图中最大的矩形(暴力法 -> 单调栈)42.接雨水思路1:暴力解(所有解法的基本思想,很关键)思路2:动态规划思路3:双指针法(动态规划的空间优化,最佳解法)思路4:单调栈(按行计算 + 算法原理改进,推荐解法)分析如何用栈来实现这一过程?84. 柱状图中最大的矩形题目分析思路1:暴力解思路2:动态规划(没找到可行方法)思路3:单调栈 + 哨兵技巧实现代码(更好理解)代码简化42.接雨水题目链接:42.接雨水分类:数组、栈(单调栈)、动态规划、原创 2020-10-18 13:11:45 · 174 阅读 · 1 评论 -
[动态规划]62. 63.不同路径 I II(回溯法、动态规划 + 优化)115. 不同的子序列(双序列动态规划)120. 三角形最小路径和(滚动数组优化)
[动态规划 leetcode]62. 不同路径(回溯法、动态规划 + 优化)62. 不同路径思路1:回溯法关键问题:如何用代码表示向下移动或向右移动?实现代码思路2:动态规划(推荐)思路2的空间优化:按行处理。关键问题:1、pre和cur的更新问题:2、pre、cur数组的初始化:实现代码62. 不同路径题目链接分类:回溯法、动态规划思路1:回溯法机器人每到达一个节点都有两个选择:向下或向右。关键问题:如何用代码表示向下移动或向右移动?机器人起点(1,1),设移动过程中机器人位置=(i,j)原创 2020-11-09 13:13:02 · 326 阅读 · 0 评论