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)