摘要:
题目链接 135. 分发糖果 思路 动态规划 题解链接 动态规划,计算最长递减序列 关键点 识别出:发放的糖果的数量实质上需要找到“最长递增子串”的长度 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 代码实现: class Solution: def candy(self, ratin 阅读全文
摘要:
题目链接 300. 最长递增子序列 思路 1. 动态规划 2. 贪心+二分 题解链接 【视频】三种方法:记忆化搜索/递推/二分查找(Python/Java/C++/Go) 关键点 无 时间复杂度 动态规划:\(O(n^2)\) 贪心+二分:\(O(n\log n)\) 空间复杂度 动态规划:\(O( 阅读全文
摘要:
题目链接 32. 最长有效括号 思路 动态规划 题解链接 官方题解 关键点 1. 只有\(s_{i}=\text{(}\)时才需要转移 2. 当遇到'...))'格式的情形时,需要考虑前面片段中转移的索引下标 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 状态转移方程为(只有\(s_{ 阅读全文
摘要:
题目链接 66. 加一 思路 简单模拟题 题解链接 官方题解 关键点 无 时间复杂度 \(O(1)\) 空间复杂度 \(O(1)\) 代码实现: class Solution: def plusOne(self, digits: List[int]) -> List[int]: carry = 1 阅读全文
摘要:
题目链接 52. N 皇后 II 思路 经典回溯题 题解链接 【视频】回溯秒杀N皇后!一个视频讲透!(Python/Java/C++/Go/JS) 关键点 无 时间复杂度 \(O(n!)\) 空间复杂度 \(O(n)\) 代码实现: class Solution: def totalNQueens( 阅读全文
摘要:
题目链接 30. 串联所有单词的子串 思路 滑动窗口 题解链接 官方题解 关键点 线性平移的动作;有明确状态量;应当使用滑动窗口 时间复杂度 \(O(\text{len}(\text{words}_0))\times\text{len}(s))\) 空间复杂度 \(O(\text{len}(\tex 阅读全文
摘要:
题目链接 438. 找到字符串中所有字母异位词 思路 滑动窗口 题解链接 官方题解 关键点 顺序比较;判断的状态量可以依此变更时应当使用“滑动窗口”的方式进行更新 时间复杂度 \(O(m + (n-m)\times\sum)\) 空间复杂度 \(O(\sum)\) 代码实现: class Solut 阅读全文
摘要:
题目链接 2266. 统计打字方案数 思路 动态规划-“爬楼梯”变体 题解链接 分组 + 线性 DP + 乘法原理(Python/Go/C++/Java) 关键点 1. 预处理类“斐波拉契数组” 2. 区分“79”及其他数字 时间复杂度 \(O(n)\) 空间复杂度 \(O(1)\) 代码实现: M 阅读全文
摘要:
题目链接 2466. 统计构造好字符串的方案数 思路 动态规划-“爬楼梯”变体 题解链接 爬楼梯换皮(Python/Java/C++/Go/JS/Rust) 关键点 \(dp(i) = dp(i-zero) + dp(i-one)\) 时间复杂度 \(O(high)\) 空间复杂度 \(O(high 阅读全文
摘要:
题目链接 377. 组合总和 Ⅳ 思路 动态规划 题解链接 本质是爬楼梯:从记忆化搜索到递推,附题单(Python/Java/C++/C/Go/JS/Rust) 关键点 1. 时间复杂度 \(O(target \cdot n)\) 空间复杂度 \(O(target)\) 代码实现: class So 阅读全文