随笔分类 - LeetCode
摘要:题目链接 2320. 统计放置房子的方式数 思路 动态规划-斐波拉契数列 题解链接 线性 DP(Python/Java/C++/Go) 关键点 无 时间复杂度 空间复杂度 代码实现: MOD = 10 ** 9 + 7 f = [1, 2] for _ in ra
阅读全文
摘要:题目链接 740. 删除并获得点数 思路 动态规划-打家劫舍-变体 题解链接 官方题解 关键点 优化版本:排序后,分段获取“连续子序列”的“打家劫舍值”后进行加和 时间复杂度 或 (优化版本) 空间复杂度 \(
阅读全文
摘要:题目链接 198. 打家劫舍 思路 入门动态规划-“打家劫舍”系列 题解链接 【视频讲解】动态规划入门:从记忆化搜索到递推(Python/Java/C++/Go/JS) 关键点 无 时间复杂度 空间复杂度 或者 代码实现(DFS): class So
阅读全文
摘要:题目链接 135. 分发糖果 思路 动态规划 题解链接 动态规划,计算最长递减序列 关键点 识别出:发放的糖果的数量实质上需要找到“最长递增子串”的长度 时间复杂度 空间复杂度 代码实现: class Solution: def candy(self, ratin
阅读全文
摘要:题目链接 300. 最长递增子序列 思路 1. 动态规划 2. 贪心+二分 题解链接 【视频】三种方法:记忆化搜索/递推/二分查找(Python/Java/C++/Go) 关键点 无 时间复杂度 动态规划: 贪心+二分: 空间复杂度 动态规划:\(O(
阅读全文
摘要:题目链接 32. 最长有效括号 思路 动态规划 题解链接 官方题解 关键点 1. 只有 时才需要转移 2. 当遇到'...))'格式的情形时,需要考虑前面片段中转移的索引下标 时间复杂度 空间复杂度 状态转移方程为(只有\(s_{
阅读全文
摘要:题目链接 66. 加一 思路 简单模拟题 题解链接 官方题解 关键点 无 时间复杂度 空间复杂度 代码实现: class Solution: def plusOne(self, digits: List[int]) -> List[int]: carry = 1
阅读全文
摘要:题目链接 52. N 皇后 II 思路 经典回溯题 题解链接 【视频】回溯秒杀N皇后!一个视频讲透!(Python/Java/C++/Go/JS) 关键点 无 时间复杂度 空间复杂度 代码实现: class Solution: def totalNQueens(
阅读全文
摘要:题目链接 30. 串联所有单词的子串 思路 滑动窗口 题解链接 官方题解 关键点 线性平移的动作;有明确状态量;应当使用滑动窗口 时间复杂度 空间复杂度 \(O(\text{len}(\tex
阅读全文
摘要:题目链接 438. 找到字符串中所有字母异位词 思路 滑动窗口 题解链接 官方题解 关键点 顺序比较;判断的状态量可以依此变更时应当使用“滑动窗口”的方式进行更新 时间复杂度 空间复杂度 代码实现: class Solut
阅读全文
摘要:题目链接 2266. 统计打字方案数 思路 动态规划-“爬楼梯”变体 题解链接 分组 + 线性 DP + 乘法原理(Python/Go/C++/Java) 关键点 1. 预处理类“斐波拉契数组” 2. 区分“79”及其他数字 时间复杂度 空间复杂度 代码实现: M
阅读全文
摘要:题目链接 2466. 统计构造好字符串的方案数 思路 动态规划-“爬楼梯”变体 题解链接 爬楼梯换皮(Python/Java/C++/Go/JS/Rust) 关键点 时间复杂度 空间复杂度 \(O(high
阅读全文
摘要:题目链接 377. 组合总和 Ⅳ 思路 动态规划 题解链接 本质是爬楼梯:从记忆化搜索到递推,附题单(Python/Java/C++/C/Go/JS/Rust) 关键点 1. 时间复杂度 空间复杂度 代码实现: class So
阅读全文
摘要:题目链接 746. 使用最小花费爬楼梯 思路 动态规划 题解链接 教你一步步思考动态规划:从记忆化搜索到递推(附题单)Python/Java/C++/Go/JS/Rust 关键点 1. \(dp(i) = min(dp(i-1) + cost_{i-1}, dp(i-2) + cost_{i-2})
阅读全文
摘要:题目链接 70. 爬楼梯 思路 动态规划 题解链接 教你一步步思考动态规划:从记忆化搜索到递推(Python/Java/C++/Go/JS/Rust) 关键点 1. 2. 时间复杂度 空间复杂度
阅读全文
摘要:题目链接 671. 二叉树中第二小的节点 思路 树的遍历(DFS) 题解链接 官方题解 关键点 利用树的性质进行适当剪枝:1. 树的根节点为全局最小点 2. 父节点的值为该子树的最小值 时间复杂度 空间复杂度 代码实现: class Solution: def f
阅读全文
摘要:题目链接 404. 左叶子之和 思路 树的遍历(DFS) 题解链接 官方题解 关键点 无 时间复杂度 空间复杂度 代码实现: class Solution: def sumOfLeftLeaves(self, root: Optional[TreeNode]) -
阅读全文
摘要:题目链接 LCP 44. 开幕式焰火 思路 树的遍历 题解链接 Go DFS+哈希表 关键点 无 时间复杂度 空间复杂度 代码实现: class Solution: def numColor(self, root: TreeNode) -> int: seen =
阅读全文