《剑指 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」。后续我们会创建算法、技术相关的交流群,大家一起交流学习,分享经验,共同进步。

许可证

知识共享 版权归属-相同方式共享 4.0 国际 公共许可证