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