合集-LeetCode 入门DP
摘要:题目链接 746. 使用最小花费爬楼梯 思路 动态规划 题解链接 教你一步步思考动态规划:从记忆化搜索到递推(附题单)Python/Java/C++/Go/JS/Rust 关键点 1. \(dp(i) = min(dp(i-1) + cost_{i-1}, dp(i-2) + cost_{i-2})
阅读全文
摘要:题目链接 377. 组合总和 Ⅳ 思路 动态规划 题解链接 本质是爬楼梯:从记忆化搜索到递推,附题单(Python/Java/C++/C/Go/JS/Rust) 关键点 1. 时间复杂度 空间复杂度 代码实现: class So
阅读全文
摘要:题目链接 2466. 统计构造好字符串的方案数 思路 动态规划-“爬楼梯”变体 题解链接 爬楼梯换皮(Python/Java/C++/Go/JS/Rust) 关键点 时间复杂度 空间复杂度 \(O(high
阅读全文
摘要:题目链接 2266. 统计打字方案数 思路 动态规划-“爬楼梯”变体 题解链接 分组 + 线性 DP + 乘法原理(Python/Go/C++/Java) 关键点 1. 预处理类“斐波拉契数组” 2. 区分“79”及其他数字 时间复杂度 空间复杂度 代码实现: M
阅读全文
摘要:题目链接 198. 打家劫舍 思路 入门动态规划-“打家劫舍”系列 题解链接 【视频讲解】动态规划入门:从记忆化搜索到递推(Python/Java/C++/Go/JS) 关键点 无 时间复杂度 空间复杂度 或者 代码实现(DFS): class So
阅读全文
摘要:题目链接 740. 删除并获得点数 思路 动态规划-打家劫舍-变体 题解链接 官方题解 关键点 优化版本:排序后,分段获取“连续子序列”的“打家劫舍值”后进行加和 时间复杂度 或 (优化版本) 空间复杂度 \(
阅读全文
摘要:题目链接 2320. 统计放置房子的方式数 思路 动态规划-斐波拉契数列 题解链接 线性 DP(Python/Java/C++/Go) 关键点 无 时间复杂度 空间复杂度 代码实现: MOD = 10 ** 9 + 7 f = [1, 2] for _ in ra
阅读全文
摘要:题目链接 213. 打家劫舍 II 思路 动态规划-打家劫舍-简单变体 题解链接 简洁写法!直接调用 198 题代码!(Python/Java/C++/Go/JS/Rust) 关键点 可以分为两种情况讨论:1. 选第一个位置 2. 不选第一个位置 时间复杂度 空间复杂度 \(O(1
阅读全文
摘要:题目链接 3186. 施咒的最大总伤害 思路 动态规划-打家劫舍(值域版)-简单变体 题解链接 【套路】值域打家劫舍(Python/Java/C++/Go) 关键点 1. 排序 2. 对可选数字进行“打家劫舍” 时间复杂度 空间复杂度 代码实现: cl
阅读全文
摘要:题目链接 53. 最大子数组和 思路 1. 前缀和 2. 动态规划 题解链接 两种方法:前缀和/动态规划(Python/Java/C++/C/Go/JS/Rust) 关键点 无 时间复杂度 空间复杂度 代码实现(前缀和): class Solution: def
阅读全文
摘要:题目链接 2606. 找到最大开销的子字符串 思路 前缀和/动态规划-最长子数组和-简单变体 题解链接 【转换】最大子数组和(Python/Java/C++/Go) 关键点 无 时间复杂度 空间复杂度 代码实现(动态规划): class Solution: def
阅读全文
摘要:题目链接 1749. 任意子数组和的绝对值的最大值 思路 前缀和/动态规划-最大子数组和-简单变体 题解链接 两种方法:动态规划/前缀和(附题单!Python/Java/C++/Go/JS) 关键点 无 时间复杂度 空间复杂度 代码实现(动态规划): class
阅读全文
摘要:题目链接 1191. K 次串联后最大子数组之和 思路 前缀和/动态规划-最大子数组和-简单变体 题解链接 dp做法正确性的详细证明(图帮助理解) 关键点 分情况讨论( ):1. 序列和小于0 2. 序列和大于等于0 时间复杂度 空间复杂度 代码实
阅读全文
摘要:题目链接 918. 环形子数组的最大和 思路 最大子数组和-简单变体 题解链接 没有思路?一张图秒懂!(Python/Java/C++/Go/JS) 关键点 无 时间复杂度 空间复杂度 代码实现: class Solution: def maxSubarraySu
阅读全文
摘要:题目链接 152. 乘积最大子数组 思路 最大子数组和-简单变体 题解链接 动态规划 关键点 无 时间复杂度 空间复杂度 代码实现: class Solution: def maxProduct(self, nums: List[int]) -> int: ans
阅读全文
摘要:题目链接 2321. 拼接数组的最大分数 思路 最大子数组和-变体 题解链接 转换成最大子数组和(Python/Java/C++/Go) 关键点 无 时间复杂度 空间复杂度 代码实现: class Solution: def maximumsSplicedArra
阅读全文