[LeetCode]C++快速刷高频面试题
文章目录
LeetCode_tag
题目思路与源码查看:https://github.com/fzhiy/CPP-Practice/tree/main/LeetCode_tag
分类参考:https://github.com/resumejob/Leetcode-retag
重新分类 Leetcode 高频题 2021 版
- 题目按照面试频率降序排列
- 增加难度分类,适合从简单开始学习
- 增加细分类别,例如单调栈,前缀树等,一道题目可能会有多个类别
目录
链表
题目 | 难度 | 题解文件 | 方法 |
---|---|---|---|
206. 反转链表 | 简单 | 简单-206.反转链表.md | 迭代/递归 |
141. 环形链表 | 简单 | [简单-141. 环形链表.md](链表/单链表/简单-141. 环形链表.md) | 快慢指针 |
83. 删除排序链表中的重复元素 | 简单 | [简单-83. 删除排序链表中的重复元素.md](链表/单链表/简单-83. 删除排序链表中的重复元素.md) | |
234. 回文链表 | 简单 | [简单-234. 回文链表.md](链表/单链表/简单-234. 回文链表.md) | 快慢指针+反转链表 |
203. 移除链表元素 | 简单 | [简单-203. 移除链表元素.md](链表/单链表/简单-203. 移除链表元素.md) | |
237. 删除链表中的节点 | 简单 | [简单-237. 删除链表中的节点.md](链表/单链表/简单-237. 删除链表中的节点.md) | |
876. 链表的中间结点 | 简单 | [简单-876. 链表的中间结点.md](链表/单链表/简单-876. 链表的中间结点.md) | 快慢指针 |
92. 反转链表 II | 中等 | [中等-92. 反转链表 II.md](链表/单链表/中等-92. 反转链表 II.md) | 头插法 |
143. 重排链表 | 中等 | [中等-143. 重排链表.md](链表/单链表/中等-143. 重排链表.md) | 快慢指针+反转链表+合并链表 |
82. 删除排序链表中的重复元素 II | 中等 | [中等-82. 删除排序链表中的重复元素 II.md](链表/单链表/中等-82. 删除排序链表中的重复元素 II.md) | 删除节点(2种方法) |
148. 排序链表 | 中等 | [中等-148. 排序链表.md](链表/单链表/中等-148. 排序链表.md) | 归并排序(迭代(切割链表) + 递归) |
86. 分隔链表 | 中等 | [中等-86. 分隔链表.md](链表/单链表/中等-86. 分隔链表.md) | 合并链表 |
61. 旋转链表 | 中等 | [中等-61. 旋转链表.md](链表/单链表/中等-61. 旋转链表.md) | 切割链表 |
142. 环形链表 II | 中等 | [中等-142. 环形链表 II.md](链表/单链表/中等-142. 环形链表 II.md) | 快慢指针 |
147. 对链表进行插入排序 | 中等 | [中等-147. 对链表进行插入排序.md](链表/单链表/中等-147. 对链表进行插入排序.md) | 头插法 |
138. 复制带随机指针的链表 | 中等 | [中等-138. 复制带随机指针的链表.md](链表/单链表/中等-138. 复制带随机指针的链表.md) | |
24. 两两交换链表中的节点 | 中等 | [中等-24. 两两交换链表中的节点.md](链表/单链表/中等-24. 两两交换链表中的节点.md) | 三指针 |
328. 奇偶链表 | 中等 | [中等-328. 奇偶链表.md](链表/单链表/中等-328. 奇偶链表.md) | 双指针 |
707. 设计链表 | 中等 | [中等-707. 设计链表.md](链表/单链表/中等-707. 设计链表.md) | 建立链表 |
109. 有序链表转换二叉搜索树 | 中等 | [中等-109. 有序链表转换二叉搜索树.md](链表/单链表/中等-109. 有序链表转换二叉搜索树.md) | 分治法(中序遍历) |
430. 扁平化多级双向链表 | 中等 | [中等-430. 扁平化多级双向链表.md](链表/单链表/中等-430. 扁平化多级双向链表.md) | |
725. 分隔链表 | 中等 | [中等-725. 分隔链表.md](链表/单链表/中等-725. 分隔链表.md) |
树
动态规划
堆
二分查找
位运算
题目 | 难度 | 题解文件 | 方法 |
---|---|---|---|
136. 只出现一次的数字 | 简单 | [136. 只出现一次的数字.md](位运算/136. 只出现一次的数字.md) | 位异或 |
191. 位1的个数 | 简单 | [191. 位1的个数.md](位运算/191. 位1的个数.md) | 位运算 |
169. 多数元素 | 简单 | [169. 多数元素.md](位运算/169. 多数元素.md) | Boyer-Moore 算法 |
231. 2 的幂 | 简单 | [231. 2 的幂.md](位运算/231. 2 的幂.md) | 位运算 |
389. 找不同 | 简单 | [389. 找不同.md](位运算/389. 找不同.md) | 位运算,问题转化 |
268. 丢失的数字 | |||
双指针与滑动窗口
题目 | 难度 | 题解文件 | 方法 |
---|---|---|---|
387. 字符串中的第一个唯一字符 | 简单 | [387. 字符串中的第一个唯一字符.md](双指针与滑动窗口/387. 字符串中的第一个唯一字符.md) | 计数 |
349. 两个数组的交集 | 简单 | [349. 两个数组的交集.md](双指针与滑动窗口/349. 两个数组的交集.md) | 哈希表 |
409. 最长回文串 | 简单 | [409. 最长回文串.md](双指针与滑动窗口/409. 最长回文串.md) | (哈希表)计数 |
217. 存在重复元素 | 简单 | [217. 存在重复元素.md](双指针与滑动窗口/217. 存在重复元素.md) | 哈希表 |
88. 合并两个有序数组 | 简单 | [88. 合并两个有序数组.md](双指针与滑动窗口/88. 合并两个有序数组.md) | 逆双指针 |
283. 移动零 | 简单 | [283. 移动零.md](双指针与滑动窗口/283. 移动零.md) | 双指针 |
125. 验证回文串 | 简单 | [125. 验证回文串.md](双指针与滑动窗口/125. 验证回文串.md) | 双指针 |
344. 反转字符串 | 简单 | [344. 反转字符串.md](双指针与滑动窗口/344. 反转字符串.md) | 双指针 |
27. 移除元素 | 简单 | [27. 移除元素.md](双指针与滑动窗口/27. 移除元素.md) | 双指针 |
977. 有序数组的平方 | 简单 | [977. 有序数组的平方.md](双指针与滑动窗口/977. 有序数组的平方.md) | 双指针 |
3. 无重复字符的最长子串 | 中等 | [3. 无重复字符的最长子串.md](双指针与滑动窗口/3. 无重复字符的最长子串.md) | 滑动窗口 |
781. 森林中的兔子 | 中等 | [781. 森林中的兔子.md](双指针与滑动窗口/781. 森林中的兔子.md) | 哈希表 |
49. 字母异位词分组 | 中等 | [49. 字母异位词分组.md](双指针与滑动窗口/49. 字母异位词分组.md) | |
18. 四数之和 | 中等 | [18. 四数之和.md](双指针与滑动窗口/18. 四数之和.md) | 排序+双指针 |
二叉搜索树
图论
并查集
题目 | 难度 | 题解文件 | 方法 |
---|---|---|---|
200. 岛屿数量 | 中等 | 中等-200.岛屿数量.md | 并查集;DFS;(BFS) |
文章作者 fzhiy
上次更新 2022-03-21