[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