Skip to content

Latest commit

 

History

History
142 lines (105 loc) · 7.93 KB

Summary.md

File metadata and controls

142 lines (105 loc) · 7.93 KB
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都能计算连同分量数.

位运算