leetcode-hot100-python
Hot100 按出现频率排序—解题思路 review
- 两数之和。Hashmap,空间换时间,扩展:on 时间复杂度寻找两数之差等于定值,用在求子数组和为 k 或其他类似题目上。
- 最长回文子串。动态规划法、中心扩张法。马拉车不用记。
- LRU 缓存机制。??
- 反转链表。链表基础题。递归或者遍历。对于 python 有一行代码替换三个变量解法,画图有助于理解。可以参考 verilog 的阻塞赋值理解。
- 两个有序数组的中位数。这道题再练习一下。二分搜索,中位数的定义,细节题。
- 无重复字符的最长子串。滑动窗口常规题,hashmap,记录窗口内每个字符的 ind。
- 编辑距离。动态规划题。需要再练习
- 接雨水。单调栈或者两次扫描。两次扫描更好用。这道题单调栈加了很多细节,不容易快速 bug free。
- 两数相加。链表题。简单题。记得合理考虑进位。
- 最大矩形。单调栈或两次扫描。推荐两次扫描,容易理解
- 三数之和。细节题。去重等等细节,再练习一下
- 最大子序和。On,dp,状态压缩
- 合并k个排序链表。细节题,堆排序 + 链表模板题。
- 字符串解码。??
- 合并两个有序链表。简单题
- 全排列。回溯题,再练习一下
- 最长上升子序列。动态规划解法,0n2;二分搜索,onlogn,tails[i] 保存长度为 i+1 的最长上升子序列的尾值。单增(可反证)
- 零钱兑换。典型 dp 题,再练习一下。dp 题先画状态转移图,思路清晰。
- 二叉树中的最大路径和。最大子序和的扩充版本。二叉树遍历 + 最大子序和
- 排序链表。练习一下如何归并。如何不用递归 o(1) 完成是难点,细节繁多。
- 爬楼梯,典型的 dp,模板题
- 岛屿数量。图的遍历,模板题
- 盛最多水的容器。双指针+递归的**,如何证明,很有意思。
- 戳气球??DP hard,复习一下。这种题直接画状态按 dp 解。
- 有效的括号。括号题,easy。复习一下
- 会议室 2. 基于事件的解法,非常简单。订 +1,退订 -1.
- 最长有效括号。Bfs 求最短距离。复习下。
- 正则表达式匹配。递归的解法我知道。搞搞细节,思考下 dp 的解法
- 最大正方形。中等题目,难度不大。压缩 dp 状态需要画图,容易出错。类比二维卷积寄存器滑窗。
- 根据身高重建队列。??
- 最小覆盖子串。双指针滑动窗口题。加点细节
- 删除无效的括号。困难题。Bfs 最短距离,参考 27 联动一下
- 数组中的第 k 大元素。快速选择算法,on
- 完全平方数。二分搜索,练习一下
- 买卖股票的最佳时机。Dp,简单题
- 删除链表的倒数第 n 个节点。方法有很多。Dummy。遍历一次求长度,遍历两次求xx
- 和为 k 的子数组。累计和,two sum
- 二叉树的中序遍历
- 括号生成。左右括号计数,dfs。合法结束判定、剪枝判定、下一个状态判定
- 搜索旋转排序数组。二分搜索练习题
- 最小路径和。Dp,状态转移。
- 合并区间。先排序再扫描。
- 电话号码的字母组合。基础 DFS
- 下一个排列。??逻辑题
- 滑动窗口最大值。单调递减队列
- 翻转二叉树。左子树等于翻转右子树,右同理
- 二叉树的直径。??
- 每日温度。单调栈。具体内容忘了。也可以用单次扫描
- 乘积最大子序列。注意不要写出 bug
- 搜索二维矩阵 II。双指针扫描
- 子集。??递归,复习下
- 跳跃游戏。动态规划,复习下
- 旋转图像。数学题
- 柱状图中的最大矩形。单调栈。单次扫描可以做吗,思考下
- 单词搜索。前缀树,复习下
- 最长连续序列。单次扫描 + hashmap,很有趣的题
- 二叉树的层次遍历。BFS
- 组合总和。递归题。??
- 不同路径。??
- 二叉树的最大深度。DFS
- 寻找重复数。??
- 前序和中序遍历,构造二叉树
- 二叉树的最近公共祖先。
- 回文链表。额外空间,栈。无额外空间,翻转后半部分。
- 回文子串。??
- 最佳买卖股票含冷冻期。DP,复习下
- 环形链表。简单题
- 实现 trie。简单题
- 任务调度器。??
- 单词拆分。??忘记了
- 对称二叉树。简单。左等于右,
- 打家劫舍。Dp。??
- 最小栈。看下答案,没搞懂题目想要做什么。??
- 只出现一次的数字。??异或
- 合并二叉树。??
- 相交链表。有趣的题目。??
- 多数元素。Morre 计数法。
- 目标和。??
- 二叉树展开为链表??
- 不同的二叉搜索树。??
- 二叉树的序列化与反序列化。BFS 和 DFS,分别练习一下。建树的过程比较绕。??复习一下
- 找到字符串中的所有字母异位词。??hashmap
- 移动零。技巧题
- 环形链表 II。??
- 除自身以外数组的乘积。??
- 课程表??
- 在排序数组中查找元素的第一个和最后一个位置。二分搜索,练习一下。
- 找到所有数组中消失的数字。??
- 颜色分类??
- 打家劫舍 iii。??
- 前k个高频元素。堆排序模板题。
- 分割等和子集??
- 除法求值??。图的拓扑排序
- 字母异位词分组。??
- 验证二叉搜索树。中序遍历,单调递增。
- 最短无序连续子数组。??
- 路径总和 iii。??
- 把二叉搜索树转换为累加树。??
- 汉明距离。
- 比特位计数。??