sidebarDepth |
---|
1 |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
旋转数组 | |||
下一个排列 | |||
二维数组搜索 II | 简单✅ | 5min | 从右上角开始搜索. |
旋转矩阵 | 中等✅ | 20min | 从外圈开始旋转, 每次交换4个元素. |
矩阵置零 | 简单✅ | 10min | 使用第一行和第一列表示矩阵中的信息 |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
分组反转链表 | 简单 | ||
删除排序链表中的重复元素 II | 简单 | ||
链表加一 | 简单 | 链表的运算 | |
环形链表 II | 简单✅ | 10min | 快慢指针 |
LRU | 中等✅ | 20min | 很容易出错, 需要反复练习 |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
250 统计同值子树 | 简单 | 5~10min | 遍历时返回子树的信息, 并更新全局结果. |
1120 子树的最大平均值 | 简单 | 5~10min | 遍历时返回子树的信息, 并更新全局结果. |
545 二叉树的边界 | 简单 | 20~30min | 树的遍历, 需要快速理解题意. |
366 寻找二叉树的叶子节点 | 中等 | 10~20min | 树的遍历, 有多种遍历方法. |
298 二叉树中最长连续序列 I | 简单 | 10min | 遍历时返回子树的信息, 并更新全局结果. |
549 二叉树中最长连续序列 II | 中等 | 20min | 遍历时返回子树的信息, 并更新全局结果. |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
最长有效括号 | 困难🚩 | 30min | 除了动态规划, 使用栈也是不错的解法. |
接雨水 | 中等✅ | 20min | 单调递减栈, 寻找左右边界和下界 |
两个栈实现队列 | 简单✅ | 5min | 经典题 |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
一个队列实现栈 | 简单✅ | 5min | 经典题 |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
三数之和 | 困难 | 30min🚩 | 除了动态规划, 使用栈也是不错的解法. |
盛最多水的容器 | 简单 | 5min✅ | 确定需要移动的指针 |
把数组中所有零移到末尾 | 简单 | 5min✅ | 使用快慢指针, 将所有非零移动到数组前面. |
有序数组二分查找:
结果集二分查找:
问题 | 难度 | 备注 |
---|---|---|
分享巧克力 | 中等 | 模板题 |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
字母异位词分组 | 简单✅ | 5min | 使用哈希表分组 |
连续子数组和为k的倍数 | |||
连续子数组和 | |||
分数到小数 |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
栅栏涂色 | 中等✅ | 10min | 分两种情况的一维动态规划 |
粉刷房子 | 简单✅ | 10min | 分三种情况的一维动态规划 |
粉刷房子 II | 简单✅ | 10min | 二维动态规划, 考虑所有颜色 |
数组分成和相等的两个部分 | 简单✅ | 10min | 简单的背包问题 |
矩阵最小路径和 | 简单✅ | 10min | 简单的二维动态规划 |
4键键盘 | 中等🚩 | 一维动态规划, 但得出当前步骤的解需要扫描前面所有解 | |
不相交的握手 | 困难🚩 | 30min | 基于切分划分子问题 |
最长有效括号 | 困难🚩 | 30min | 千万不要想成二维动态规划, 因为前面的解带了长度信息. |
最大子矩阵和 | 中等🚩 | 20min | 能够使用动态规划和贪心优化到O(n^3) |
骑士见公主 | 中等🚩 | 20min | 使用自底向上的思路求解 |
最长递增子序列 | 简单✅ | 5min | 经典题 |
最大子数组乘积 | 简单✅ | 10min | 分两种情况的一维动态规划, 注意最大和最小是逻辑上的. |
分隔数组以得到最大和 | 简单✅ | 10min | 一维动态规划, 考虑所有间隔大小. |
问题 | 难度 | 时间 | 备注 |
---|---|---|---|
以图判树 | |||
省份数量 | 简单✅ | 10min | 基于搜索和Union-Find都能计算连同分量数. |