随笔分类 -  LeetCode

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

点击右上角即可分享
微信分享提示