O(n^2)排序 冒泡排序、插入排序与选择排序(Python)_NLP_victor的博客-CSDN博客
归并 归并排序(Python)_NLP_victor的博客-CSDN博客
快排 快速排序(Python)_NLP_victor的博客-CSDN博客
堆排序 https://blog.csdn.net/IOT_victor/article/details/103604409
二分查找及其变体 二分查找及其变体(Python)_NLP_victor的博客-CSDN博客
Trie树 LeetCode—Python—208. 实现 Trie (前缀树)_NLP_victor的博客-CSDN博客
编辑距离 DP-LeetCode72. 编辑距离_NLP_victor的博客-CSDN博客
LRU缓存机制(哈希+双向链表)LeetCode146. LRU缓存机制(哈希+双向链表)_NLP_victor的博客-CSDN博客
一、数据结构类题目
① 数组
剑13. 机器人的运动范围DFShttps://blog.csdn.net/IOT_victor/article/details/108262517
238. 除自身以外数组的乘积(前后两趟遍历)LeetCode238. 除自身以外数组的乘积(Python)_NLP_victor的博客-CSDN博客
剑21.调整数组顺序使奇数位于偶数前面(双指针、稳定排序)https://blog.csdn.net/IOT_victor/article/details/104735419-----------
54. 螺旋矩阵59. 螺旋矩阵 II 数组-LeetCode54. 螺旋矩阵+59. 螺旋矩阵 II_NLP_victor的博客-CSDN博客
1. 两数之和 167. 两数之和 II-有序数组(双指针对撞) LeetCode167. 两数之和 II - 输入有序数组 + 1. 两数之和_NLP_victor的博客-CSDN博客
- 888. 公平的糖果棒交换(两数之和变形)LeetCode888. 公平的糖果棒交换(两数之和变形)_NLP_victor的博客-CSDN博客
15. 三数之和(双指针对撞) 双指针-LeetCode15. 三数之和_NLP_victor的博客-CSDN博客
18. 四数之和(双指针) 双指针-LeetCode18. 四数之和_NLP_victor的博客-CSDN博客
454. 四数相加 II(哈希)LeetCode454. 四数相加 II(哈希)_NLP_victor的博客-CSDN博客
349. 两个数组的交集 + 350. 两个数组的交集 II LeetCode349. 两个数组的交集 + 350. 两个数组的交集 II_NLP_victor的博客-CSDN博客
56. 合并区间(首位排序+规律) LeetCode56. 合并区间(首位排序+规律)_NLP_victor的博客-CSDN博客
283. 移动零(双指针)LeetCode—Python—283. 移动零(双指针)_NLP_victor的博客-CSDN博客
最大数
643. 子数组最大平均数 I(前缀和、滑动窗口)https://blog.csdn.net/IOT_victor/article/details/113705185
1423. 可获得的最大点数(滑动窗口)LeetCode1423. 可获得的最大点数(滑动窗口)_NLP_victor的博客-CSDN博客
321. 拼接最大数(单调栈、分治)LeetCode321. 拼接最大数(单调栈、分治)_NLP_victor的博客-CSDN博客
单调栈
42. 接雨水(单调栈) 双指针、单调栈-LeetCode42. 接雨水_NLP_victor的博客-CSDN博客
84. 柱状图中最大的矩形+85. 最大矩形(单调栈)LeetCode84. 柱状图中最大的矩形+85. 最大矩形(单调栈)_NLP_victor的博客-CSDN博客
769. 最多能完成排序的块+768.II(元素可重复)单调栈 LeetCode769. 最多能完成排序的块+768.II(元素可重复)_NLP_victor的博客-CSDN博客 ------
402. 移掉K位数字(单调栈)LeetCode402. 移掉K位数字(单调栈)_NLP_victor的博客-CSDN博客
找数字
剑39.数组中出现次数超过一半的数字 39:数组中出现次数超过一半的数字(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
41. 缺失的第一个正数(原地哈希) https://blog.csdn.net/IOT_victor/article/details/107497712
剑3.数组中重复的数字(原地哈希)3:数组中重复的数字(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
287. 寻找重复数(二分/抽屉原理)LeetCode287. 寻找重复数(二分)_NLP_victor的博客-CSDN博客
136. 只出现一次的数字(异或)LeetCode136. 只出现一次的数字(异或)_NLP_victor的博客-CSDN博客
Kth问题
440. 字典序的第K小数字 LeetCode440. 字典序的第K小数字_NLP_victor的博客-CSDN博客
378. 有序矩阵中第K小的元素 二分 二分、数组-LeetCode378. 有序矩阵中第K小的元素_NLP_victor的博客-CSDN博客
19. 删除链表的倒数第N个节点/剑22链表中倒数第k个节点 22:链表中倒数第k个节点(剑指offer第2版)+ LeetCode19. 删除链表的倒数第N个节点_NLP_victor的博客-CSDN博客
215. 数组中的第K个最大元素(快堆) LeetCode—Python—215. 数组中的第K个最大元素(快排、堆排序)_NLP_victor的博客-CSDN博客
剑40. 最小的k个数(大根堆) 40:最小的K个数(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
347. 前 K 个高频元素( Counter ,小根堆) LeetCode—Python—347. 前K个高频元素_NLP_victor的博客-CSDN博客
(左神)两个有序数组中找第k小的数 二分-LeetCode4. 寻找两个正序数组的中位数+两个有序数组中找第k小的数_NLP_victor的博客-CSDN博客
中位数
41.数据流中的中位数(Heap)41:数据流中的中位数(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
295. 数据流的中位数(官方) 力扣
480. 滑动窗口中位数(二分查找)LeetCode480. 滑动窗口中位数(二分查找)_NLP_victor的博客-CSDN博客
序列型
剑57-1.和为S的两个数(双指针) 57-1:和为S的两个数字(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
剑57-2.和为S的连续正数序列(滑动窗口) 57-2:和为S的连续正数序列(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
128. 最长连续序列([100, 4, 200, 1, 3, 2]- [1, 2, 3, 4])https://blog.csdn.net/iot_victor/article/details/108590555
491. 递增子序列(DFS、回溯再看思路) DFS、回溯-LeetCode491. 递增子序列_NLP_victor的博客-CSDN博客
排列
31. 下一个排列 LeetCode.31. 下一个排列(全排列)_NLP_victor的博客-CSDN博客
60. 第k个排列(规律题) LeetCode60. 第k个排列(规律题)_NLP_victor的博客-CSDN博客
46. 全排列(不重复数字)回溯 https://blog.csdn.net/IOT_victor/article/details/107072205
47. 全排列 II(可重复数字)回溯、剪枝 https://blog.csdn.net/IOT_victor/article/details/107073704
回溯
39. 组合总和 回溯-LeetCode39. 组合总和_NLP_victor的博客-CSDN博客
40. 组合总和 II+216. 组合总和 III(回溯)LeetCode40. 组合总和 II+216. 组合总和 III(回溯)_NLP_victor的博客-CSDN博客
77. 组合回溯-LeetCode77. 组合(Python)_NLP_victor的博客-CSDN博客_回溯组合python
78. 子集+90. 子集 II(回溯)LeetCode78. 子集+90. 子集 II(回溯)_NLP_victor的博客-CSDN博客
51、52N皇后(回溯)LeetCode51、52N皇后(回溯)Python_NLP_victor的博客-CSDN博客
37. 解数独(回溯+set)https://blog.csdn.net/IOT_victor/article/details/108612552
场景题
452. 用最少数量的箭引爆气球(排序+贪心、区间问题)https://blog.csdn.net/IOT_victor/article/details/110084095
11. 盛最多水的容器(双指针) 双指针-LeetCode11. 盛最多水的容器_NLP_victor的博客-CSDN博客
16.11. 跳水板(Math) Math-面试题 16.11. 跳水板_NLP_victor的博客-CSDN博客
135. 分发糖果(贪心) 贪心-LeetCode135. 分发糖果_NLP_victor的博客-CSDN博客
845. 数组中的最长山脉(双指针技巧)LeetCode845. 数组中的最长山脉(双指针技巧)_NLP_victor的博客-CSDN博客
605. 种花问题(贪心) 贪心-LeetCode605. 种花问题_NLP_victor的博客-CSDN博客
134. 加油站(逻辑题)LeetCode134. 加油站(逻辑题)_NLP_victor的博客-CSDN博客
976. 三角形的最大周长 LeetCode976. 三角形的最大周长(Python)_NLP_victor的博客-CSDN博客
排序、有序数组
4. 寻找两个正序数组的中位数+两个有序数组中找第k小的数 二分-LeetCode4. 寻找两个正序数组的中位数+两个有序数组中找第k小的数_NLP_victor的博客-CSDN博客
88. 合并两个有序数组+合并K个有序数组 LeetCode88. 合并两个有序数组 + 合并K个有序数组_NLP_victor的博客-CSDN博客_leetcode 合并k个有序数组
977. 有序数组的平方(双指针)双指针-LeetCode977. 有序数组的平方_NLP_victor的博客-CSDN博客
1365. 有多少小于当前数字的数字(计数排序、字典计数)https://blog.csdn.net/IOT_victor/article/details/109301044
75.颜色分类(荷兰国旗问题)(双指针)LeetCod75.颜色分类(荷兰国旗问题)(Python)_NLP_victor的博客-CSDN博客
493. 翻转对(归并排序)LeetCode493. 翻转对(归并排序)_NLP_victor的博客-CSDN博客
164. 最大间距(桶排序)https://blog.csdn.net/IOT_victor/article/details/110206750
二分查找 、有序数组
4. 寻找两个正序数组的中位数 二分-LeetCode4. 寻找两个正序数组的中位数+两个有序数组中找第k小的数_NLP_victor的博客-CSDN博客
240:搜索二维矩阵II (通用模板) 4:二维数组中的查找(剑指offer第2版)LeetCode240:搜索二维矩阵II_NLP_victor的博客-CSDN博客
74. 搜索二维矩阵(240的特例) 数组、二分-LeetCode74. 搜索二维矩阵_NLP_victor的博客-CSDN博客
378. 有序矩阵中第K小的元素 二分、数组-LeetCode378. 有序矩阵中第K小的元素_NLP_victor的博客-CSDN博客
34. 在排序数组中查找元素的第一个和最后一个位置 https://blog.csdn.net/IOT_victor/article/details/107107062
剑53.数字在排序数组中出现的次数(二分查找)53-1:数字在排序数组中出现的次数(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
35. 搜索插入位置(排序数组) https://blog.csdn.net/IOT_victor/article/details/107392091
153.154 寻找旋转数组中的最小值+33. 81搜索旋转排序数组(旋转数组) 剑11LC153.154 寻找旋转数组中的最小值+33. 81搜索旋转排序数组(旋转数组系列)_NLP_victor的博客-CSDN博客
动态规划
DP-221. 最大正方形 DP-LeetCode221. 最大正方形_NLP_victor的博客-CSDN博客
978. 最长湍流子数组(动态规划)https://blog.csdn.net/IOT_victor/article/details/113764230
DFS
130. 被围绕的区域(DFS) https://blog.csdn.net/IOT_victor/article/details/107930466
200. 岛屿数量(BFS、DFS、并查集) LeetCode200. 岛屿数量(BFS、DFS)_NLP_victor的博客-CSDN博客
695. 岛屿的最大面积(DFS) DFS-LeetCode695. 岛屿的最大面积_NLP_victor的博客-CSDN博客
矩阵操作
48. 旋转图像LeetCode48. 旋转图像(Python)_NLP_victor的博客-CSDN博客
数列
665. 非递减数列(分类讨论)https://blog.csdn.net/IOT_victor/article/details/113786754
② 字符串
普通操作题
剑20.判断字符串是否表示数值(ifelse) 20:表示数值的字符串(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
14. 最长公共前缀 https://blog.csdn.net/IOT_victor/article/details/106415733 --------力扣-------------
466. 统计重复个数(难字节笔)循环节 循环节-LeetCode466. 统计重复个数_NLP_victor的博客-CSDN博客
划分、区间、拆分
763. 划分字母区间(dict+双指针)LeetCode763. 划分字母区间(dict+双指针)_NLP_victor的博客-CSDN博客
139. 单词拆分(DP) DP-LeetCode139. 单词拆分_NLP_victor的博客-CSDN博客
匹配、搜索
44. 通配符匹配(任意字符串包括空)(DP) DP-LeetCode44. 通配符匹配(任意字符串包括空)_NLP_victor的博客-CSDN博客
10. 正则表达式匹配 DP-LeetCode10. 正则表达式匹配(零个或多个前面的那个元素)_NLP_victor的博客-CSDN博客
回文
516. 最长回文子序列(DP) DP-LeetCode516. 最长回文子序列(Python)_NLP_victor的博客-CSDN博客
相关题: LeetCode5. 最长回文子串(双指针、中心扩展算法)LeetCode5. 最长回文子串647. 回文子串(双指针、中心扩展算法)_NLP_victor的博客-CSDN博客
普通操作题
93. 复原IP地址 https://blog.csdn.net/IOT_victor/article/details/107543028
6. Z 字形变换 字符串-LeetCode6. Z 字形变换_NLP_victor的博客-CSDN博客
696. 计数二进制子串(计数,找技巧) 字符串-LeetCode696. 计数二进制子串_NLP_victor的博客-CSDN博客
1370. 上升下降字符串(桶计数)LeetCode1370. 上升下降字符串(桶计数)_NLP_victor的博客-CSDN博客
双指针
392. 判断子序列(s 是否为 t 的子序列) https://blog.csdn.net/IOT_victor/article/details/107622640
125. 验证回文串(双指针) https://blog.csdn.net/IOT_victor/article/details/107771407
344.反转字符串 https://blog.csdn.net/IOT_victor/article/details/88075071
数学
415. 字符串相加 https://blog.csdn.net/IOT_victor/article/details/107768744
滑动窗口
76. 最小覆盖子串(滑动窗口) 滑动窗口-LeetCode76. 最小覆盖子串_NLP_victor的博客-CSDN博客
424. 替换后的最长重复字符(滑动窗口)LeetCode424. 替换后的最长重复字符(双指针:滑动窗口)_NLP_victor的博客-CSDN博客
1208. 尽可能使字符串相等(滑动窗口)https://blog.csdn.net/IOT_victor/article/details/113704949
567. 字符串的排列(滑动窗口、Counter)https://blog.csdn.net/IOT_victor/article/details/113786466
DP
674. 最长连续递增序列Longest Continuous Increasing Subsequence DP-LeetCode674. 最长连续递增序列Longest Continuous Increasing Subsequence_NLP_victor的博客-CSDN博客(连续)
相关题:300.最长上升子序列(LIS) DP、二分-LeetCode300. 最长上升子序列LIS+673. 最长递增子序列的个数(Python)_NLP_victor的博客-CSDN博客(二分查找)(可以不连续)
DFS
79. 单词搜索(DFS+4种directions)https://blog.csdn.net/IOT_victor/article/details/108565980
哈希表(counter、dict)
1002. 查找常用字符(哈希表、count)LeetCode1002. 查找常用字符(哈希表、count)_NLP_victor的博客-CSDN博客_哈希表count函数
767. 重构字符串(贪心+Count)https://blog.csdn.net/IOT_victor/article/details/110426207
242. 有效的字母异位词(哈希表)https://blog.csdn.net/IOT_victor/article/details/88630227
II:14. 字符串中的变位词/15. 字符串中的所有变位词/32. 有效的变位词/33. 变位词组
场景题
17. 电话号码的字母组合 LeetCode17. 电话号码的字母组合(Python)_NLP_victor的博客-CSDN博客
③ Stack & Queue & Heap(栈、队列、堆)
9.用两个栈实现队列9:用两个栈实现队列(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
9.两个队列实现栈9:用两个栈实现队列(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
31.栈的压入、弹出序列31:栈的压入、弹出序列(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
59.滑动窗口的最大值(双端队列)59-1:滑动窗口的最大值(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
41.数据流中的中位数(Heap)https://blog.csdn.net/IOT_victor/article/details/103940622 --------力扣-------------
20. 有效的括号isValid(栈)https://blog.csdn.net/IOT_victor/article/details/105166364
二、具体算法类题目
搜索算法
4:二维数组中的查找LeetCode240:搜索二维矩阵II4:二维数组中的查找(剑指offer第2版)LeetCode240:搜索二维矩阵II_NLP_victor的博客-CSDN博客
11.旋转数组的最小数字(二分查找)https://blog.csdn.net/IOT_victor/article/details/104362924
排序
51.数组中的逆序对(归并排序)https://blog.csdn.net/IOT_victor/article/details/104350702
力215. 数组中的第K个最大元素(快排、堆排序)LeetCode—Python—215. 数组中的第K个最大元素(快排、堆排序)_NLP_victor的博客-CSDN博客
全排列 38.字符串的排列38:字符串的排列(剑指offer第2版Python)_NLP_victor的博客-CSDN博客
动态规划 48.最长不含重复字符的子字符串 力扣
回溯 13.机器人的运动范围(DFS)力扣
三、其他算法
3.1 Math、位运算
470. 用 Rand7() 实现 Rand10() 力扣
8. 字符串转换整数 (atoi) 力扣
16.数值的整数次方(位运算 )https://blog.csdn.net/IOT_victor/article/details/104738503
44.数字序列中某一位的数字(Math)44:数字序列中某一位的数字(剑指offer第2版Python)LeetCode.400_NLP_victor的博客-CSDN博客_数字序列中某一位的数字python
43.整数中1出现的次数(从1到n整数中1出现的次数)(Bit Manipulation)
67.把字符串转换成整数(Bit Manipulation) 67:把字符串转换成整数(剑指offer第2版Python)_NLP_victor的博客-CSDN博客_python2 字符串转整数 --------力扣-------------
191. 位1的个数(剑15二进制中1的个数)位运算https://blog.csdn.net/IOT_victor/article/details/106864049
50. Pow(x, n)剑16数值的整数次方(二分、快速幂) https://blog.csdn.net/IOT_victor/article/details/104738503
69. x 的平方根(二分) 二分-LeetCode69. x 的平方根_NLP_victor的博客-CSDN博客
带精确小数 python实现牛顿迭代法和二分法求平方根,精确到小数点后无限多位-4_※夏日星空※的博客-CSDN博客
16.11. 跳水板(Math) https://blog.csdn.net/IOT_victor/article/details/107201346
7. 整数反转 https://blog.csdn.net/IOT_victor/article/details/107460903
3.2 贪心算法
贪心-LeetCode605. 种花问题 https://blog.csdn.net/IOT_victor/article/details/106723879
55. 跳跃游戏(DP、贪心) https://blog.csdn.net/IOT_victor/article/details/106336199 (存在型)
1024. 视频拼接(贪心、DP)LeetCode1024. 视频拼接(贪心、DP)_NLP_victor的博客-CSDN博客
3.3 回溯、BFS、DFS
46. 全排列(不重复数字)回溯 回溯-LeetCode46. 全排列_NLP_victor的博客-CSDN博客
47. 全排列 II(可重复数字)回溯、剪枝 回溯、剪枝-LeetCode47. 全排列 II_NLP_victor的博客-CSDN博客
22.括号生成(回溯、DFS) https://blog.csdn.net/IOT_victor/article/details/107027310
200. 岛屿数量(BFS、DFS、并查集) LeetCode200. 岛屿数量(BFS、DFS)_NLP_victor的博客-CSDN博客
695. 岛屿的最大面积(DFS) https://blog.csdn.net/IOT_victor/article/details/107799429