mirror of https://github.com/doocs/leetcode.git
README.md
| comments | edit_url |
|---|---|
| true | https://github.com/doocs/leetcode/edit/main/lcof2/README.md |
《剑指 Offer(专项突击版)》系列
本书精选国内外名企高频面试题并深度拓展,系统地总结了程序员面试中必备的数据结构与算法知识,并以面试者及面试官的双向视角剖析考点与解题思路,适合所有正在准备面试的程序员阅读。
题解
列表所有题解均由 开源社区 Doocs 贡献者提供,正在完善中,欢迎贡献你的题解!
快速搜索题号、题解、标签等,请善用 Control + F(或者 Command + F)。
| 题号 | 题解 | 标签 | 难度 | 备注 |
|---|---|---|---|---|
| 001 | 整数除法 | 数学 |
简单 | |
| 002 | 二进制加法 | 位运算,数学,字符串,模拟 |
简单 | |
| 003 | 前 n 个数字二进制中 1 的个数 | 位运算,动态规划 |
简单 | |
| 004 | 只出现一次的数字 | 位运算,数组 |
中等 | |
| 005 | 单词长度的最大乘积 | 位运算,数组,字符串 |
中等 | |
| 006 | 排序数组中两个数字之和 | 数组,双指针,二分查找 |
简单 | |
| 007 | 数组中和为 0 的三个数 | 数组,双指针,排序 |
中等 | |
| 008 | 和大于等于 target 的最短子数组 | 数组,二分查找,前缀和,滑动窗口 |
中等 | |
| 009 | 乘积小于 K 的子数组 | 数组,滑动窗口 |
中等 | |
| 010 | 和为 k 的子数组 | 数组,哈希表,前缀和 |
中等 | |
| 011 | 0 和 1 个数相同的子数组 | 数组,哈希表,前缀和 |
中等 | |
| 012 | 左右两边子数组的和相等 | 数组,前缀和 |
简单 | |
| 013 | 二维子矩阵的和 | 设计,数组,矩阵,前缀和 |
中等 | |
| 014 | 字符串中的变位词 | 哈希表,双指针,字符串,滑动窗口 |
中等 | |
| 015 | 字符串中的所有变位词 | 哈希表,字符串,滑动窗口 |
中等 | |
| 016 | 不含重复字符的最长子字符串 | 哈希表,字符串,滑动窗口 |
中等 | |
| 017 | 含有所有字符的最短字符串 | 哈希表,字符串,滑动窗口 |
困难 | |
| 018 | 有效的回文 | 双指针,字符串 |
简单 | |
| 019 | 最多删除一个字符得到回文 | 贪心,双指针,字符串 |
简单 | |
| 020 | 回文子字符串的个数 | 字符串,动态规划 |
中等 | |
| 021 | 删除链表的倒数第 n 个结点 | 链表,双指针 |
中等 | |
| 022 | 链表中环的入口节点 | 哈希表,链表,双指针 |
中等 | |
| 023 | 两个链表的第一个重合节点 | 哈希表,链表,双指针 |
简单 | |
| 024 | 反转链表 | 递归,链表 |
简单 | |
| 025 | 链表中的两数相加 | 栈,链表,数学 |
中等 | |
| 026 | 重排链表 | 栈,递归,链表,双指针 |
中等 | |
| 027 | 回文链表 | 栈,递归,链表,双指针 |
简单 | |
| 028 | 展平多级双向链表 | 深度优先搜索,链表,双向链表 |
中等 | |
| 029 | 排序的循环链表 | 链表 |
中等 | |
| 030 | 插入、删除和随机访问都是 O(1) 的容器 | 设计,数组,哈希表,数学,随机化 |
中等 | |
| 031 | 最近最少使用缓存 | 设计,哈希表,链表,双向链表 |
中等 | |
| 032 | 有效的变位词 | 哈希表,字符串,排序 |
简单 | |
| 033 | 变位词组 | 哈希表,字符串,排序 |
中等 | |
| 034 | 外星语言是否排序 | 数组,哈希表,字符串 |
简单 | |
| 035 | 最小时间差 | 数组,数学,字符串,排序 |
中等 | |
| 036 | 后缀表达式 | 栈,数组,数学 |
中等 | |
| 037 | 小行星碰撞 | 栈,数组 |
中等 | |
| 038 | 每日温度 | 栈,数组,单调栈 |
中等 | |
| 039 | 直方图最大矩形面积 | 栈,数组,单调栈 |
困难 | |
| 040 | 矩阵中最大的矩形 | 栈,数组,动态规划,矩阵,单调栈 |
困难 | |
| 041 | 滑动窗口的平均值 | 设计,队列,数组,数据流 |
简单 | |
| 042 | 最近请求次数 | 设计,队列,数据流 |
简单 | |
| 043 | 往完全二叉树添加节点 | 树,广度优先搜索,设计,二叉树 |
中等 | |
| 044 | 二叉树每层的最大值 | 树,深度优先搜索,广度优先搜索,二叉树 |
中等 | |
| 045 | 二叉树最底层最左边的值 | 树,深度优先搜索,广度优先搜索,二叉树 |
中等 | |
| 046 | 二叉树的右侧视图 | 树,深度优先搜索,广度优先搜索,二叉树 |
中等 | |
| 047 | 二叉树剪枝 | 树,深度优先搜索,二叉树 |
中等 | |
| 048 | 序列化与反序列化二叉树 | 树,深度优先搜索,广度优先搜索,设计,字符串,二叉树 |
困难 | |
| 049 | 从根节点到叶节点的路径数字之和 | 树,深度优先搜索,二叉树 |
中等 | |
| 050 | 向下的路径节点之和 | 树,深度优先搜索,二叉树 |
中等 | |
| 051 | 节点之和最大的路径 | 树,深度优先搜索,动态规划,二叉树 |
困难 | |
| 052 | 展平二叉搜索树 | 栈,树,深度优先搜索,二叉搜索树,二叉树 |
简单 | |
| 053 | 二叉搜索树中的中序后继 | 树,深度优先搜索,二叉搜索树,二叉树 |
中等 | |
| 054 | 所有大于等于节点的值之和 | 树,深度优先搜索,二叉搜索树,二叉树 |
中等 | |
| 055 | 二叉搜索树迭代器 | 栈,树,设计,二叉搜索树,二叉树,迭代器 |
中等 | |
| 056 | 二叉搜索树中两个节点之和 | 数组,滑动窗口 |
简单 | |
| 057 | 值和下标之差都在给定的范围内 | 数组,桶排序,有序集合,排序,滑动窗口 |
中等 | |
| 058 | 日程表 | 设计,线段树,有序集合 |
中等 | |
| 059 | 数据流的第 K 大数值 | 树,设计,二叉搜索树,二叉树,数据流,堆(优先队列) |
简单 | |
| 060 | 出现频率最高的 k 个数字 | 数组,哈希表,分治,桶排序,计数,快速选择,排序,堆(优先队列) |
中等 | |
| 061 | 和最小的 k 个数对 | 数组,堆(优先队列) |
中等 | |
| 062 | 实现前缀树 | 设计,字典树,哈希表,字符串 |
中等 | |
| 063 | 替换单词 | 字典树,数组,哈希表,字符串 |
中等 | |
| 064 | 神奇的字典 | 设计,字典树,哈希表,字符串 |
中等 | |
| 065 | 最短的单词编码 | 字典树,数组,哈希表,字符串 |
中等 | |
| 066 | 单词之和 | 设计,字典树,哈希表,字符串 |
中等 | |
| 067 | 最大的异或 | 位运算,字典树,数组,哈希表 |
中等 | |
| 068 | 查找插入位置 | 数组,二分查找 |
简单 | |
| 069 | 山峰数组的顶部 | 数组,二分查找 |
简单 | |
| 070 | 排序数组中只出现一次的数字 | 数组,二分查找 |
中等 | |
| 071 | 按权重生成随机数 | 数学,二分查找,前缀和,随机化 |
中等 | |
| 072 | 求平方根 | 数学,二分查找 |
简单 | |
| 073 | 狒狒吃香蕉 | 数组,二分查找 |
中等 | |
| 074 | 合并区间 | 数组,排序 |
中等 | |
| 075 | 数组相对排序 | 数组,哈希表,计数排序,排序 |
简单 | |
| 076 | 数组中的第 k 大的数字 | 数组,分治,快速选择,排序,堆(优先队列) |
中等 | |
| 077 | 链表排序 | 链表,双指针,分治,排序,归并排序 |
中等 | |
| 078 | 合并排序链表 | 链表,分治,堆(优先队列),归并排序 |
困难 | |
| 079 | 所有子集 | 位运算,数组,回溯 |
中等 | |
| 080 | 含有 k 个元素的组合 | 数组,回溯 |
中等 | |
| 081 | 允许重复选择元素的组合 | 数组,回溯 |
中等 | |
| 082 | 含有重复元素集合的组合 | 数组,回溯 |
中等 | |
| 083 | 没有重复元素集合的全排列 | 数组,回溯 |
中等 | |
| 084 | 含有重复元素集合的全排列 | 数组,回溯 |
中等 | |
| 085 | 生成匹配的括号 | 字符串,动态规划,回溯 |
中等 | |
| 086 | 分割回文子字符串 | 深度优先搜索,广度优先搜索,图,哈希表 |
中等 | |
| 087 | 复原 IP | 字符串,回溯 |
中等 | |
| 088 | 爬楼梯的最少成本 | 数组,动态规划 |
简单 | |
| 089 | 房屋偷盗 | 数组,动态规划 |
中等 | |
| 090 | 环形房屋偷盗 | 数组,动态规划 |
中等 | |
| 091 | 粉刷房子 | 数组,动态规划 |
中等 | |
| 092 | 翻转字符 | 字符串,动态规划 |
中等 | |
| 093 | 最长斐波那契数列 | 数组,哈希表,动态规划 |
中等 | |
| 094 | 最少回文分割 | 字符串,动态规划 |
困难 | |
| 095 | 最长公共子序列 | 字符串,动态规划 |
中等 | |
| 096 | 字符串交织 | 字符串,动态规划 |
中等 | |
| 097 | 子序列的数目 | 字符串,动态规划 |
困难 | |
| 098 | 路径的数目 | 数学,动态规划,组合数学 |
中等 | |
| 099 | 最小路径之和 | 数组,动态规划,矩阵 |
中等 | |
| 100 | 三角形中最小路径之和 | 数组,动态规划 |
中等 | |
| 101 | 分割等和子串 | 数学,字符串,模拟 |
简单 | |
| 102 | 加减的目标值 | 数组,动态规划,回溯 |
中等 | |
| 103 | 最少的硬币数目 | 广度优先搜索,数组,动态规划 |
中等 | |
| 104 | 排列的数目 | 数组,动态规划 |
中等 | |
| 105 | 岛屿的最大面积 | 深度优先搜索,广度优先搜索,并查集,数组,矩阵 |
中等 | |
| 106 | 二分图 | 深度优先搜索,广度优先搜索,并查集,图 |
中等 | |
| 107 | 矩阵中的距离 | 广度优先搜索,数组,动态规划,矩阵 |
中等 | |
| 108 | 单词演变 | 广度优先搜索,哈希表,字符串 |
困难 | |
| 109 | 开密码锁 | 广度优先搜索,数组,哈希表,字符串 |
中等 | |
| 110 | 所有路径 | 深度优先搜索,广度优先搜索,图,回溯 |
中等 | |
| 111 | 计算除法 | 深度优先搜索,广度优先搜索,并查集,图,数组,最短路 |
中等 | |
| 112 | 最长递增路径 | 深度优先搜索,广度优先搜索,图,拓扑排序,记忆化搜索,动态规划 |
困难 | |
| 113 | 课程顺序 | 深度优先搜索,广度优先搜索,图,拓扑排序 |
中等 | |
| 114 | 外星文字典 | 深度优先搜索,广度优先搜索,图,拓扑排序,数组,字符串 |
困难 | |
| 115 | 重建序列 | 图,拓扑排序,数组 |
中等 | |
| 116 | 朋友圈 | 深度优先搜索,广度优先搜索,并查集,图 |
中等 | |
| 117 | 相似的字符串 | 深度优先搜索,广度优先搜索,并查集,字符串 |
困难 | |
| 118 | 多余的边 | 深度优先搜索,广度优先搜索,并查集,图 |
中等 | |
| 119 | 最长连续序列 | 并查集,数组,哈希表 |
中等 |
版权
本项目著作权归 GitHub 开源社区 Doocs 所有,商业转载请联系 @yanglbme 获得授权,非商业转载请注明出处。
联系我们
欢迎各位小伙伴们添加 @yanglbme 的个人微信(微信号:YLB0109),备注 「leetcode」。后续我们会创建算法、技术相关的交流群,大家一起交流学习,分享经验,共同进步。
![]() |
|---|

