Skip to content

Latest commit

 

History

History
137 lines (129 loc) · 48.1 KB

README.md

File metadata and controls

137 lines (129 loc) · 48.1 KB

本书精选国内外名企高频面试题并深度拓展,系统地总结了程序员面试中必备的数据结构与算法知识,并以面试者及面试官的双向视角剖析考点与解题思路,适合所有正在准备面试的程序员阅读。

题解

列表所有题解均由 开源社区 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 获得授权,非商业转载请注明出处。