我的刷题计划参考:https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E7%9B%AE%E5%BD%95.md
|
类别 |
分类 |
题目名称 |
难度 |
|
算法相关 |
双指针 |
|
167.有序数组TwoSum |
E |
|
633.两数平方和 |
E |
|
|||
345.反转字符串中的元音字母 |
E |
|
|||
680.回文字符串 |
E |
|
|||
88.归并两个有序数组 |
E |
|
|||
141.判断链表是否存在环 |
E |
|
|||
524.最长子序列 |
E |
|
|||
排序 |
快速选择/堆 |
215.Ktn Element |
M |
|
|
桶排序 |
347.出现频率最多的K个元素 |
M |
|
||
451.按照字符串出现顺序对字符串排序 |
M |
|
|||
荷兰国旗问题 |
75.Sort Colors |
M |
|
||
贪心思想 |
|
455.分配饼干 |
E |
|
|
|
435.不重叠的区间个数 |
M |
|
||
|
452.投飞镖刺破气球 |
M |
|
||
|
406.根据身高和序号重组队列 |
M |
|
||
|
121.买最大股票的收益 |
E |
|
||
|
122.买股票最大收益2 |
E |
|
||
|
605.种植花朵 |
E |
|
||
|
392.判断是否为子序列 |
M |
|
||
|
655.修改一个数字成为非递减数组 |
E |
|
||
|
53.子数组最大的和 |
E |
|
||
|
763.分隔字符串使同种字符串出现在一起 |
M |
|
||
二分查找 |
|
69.求开方 |
E |
|
|
|
744.大于给定元素的最小元素 |
E |
|
||
|
540.有序数组的singleElement |
M |
|
||
|
278.第一个错误的版本 |
E |
|
||
|
153.旋转数组的最小数字 |
M |
|
||
|
34.查找区间 |
M |
|
||
分治 |
|
241.给表达式加括号 |
M |
|
|
|
95.不同的二叉搜索树 |
M |
|
||
搜索 |
BFS |
1091.计算在网格中从原点到特定点的最短路径 |
M |
|
|
279.组成整数的最小平方数数量 |
M |
|
|||
127.最短单词路径 |
M |
|
|||
DFS |
695.查找最大的连通面积 |
M |
|
||
200.矩阵中连通分量数目 |
M |
|
|||
547.好友关系的连通数分量数目 |
M |
|
|||
130.填充封闭区域 |
M |
|
|||
417.能到达太平洋和大西洋的区域 |
M |
|
|||
Backtracking回溯 |
17.数字键盘组合 |
M |
|
||
93.IP地址划分 |
M |
|
|||
79.在矩阵中查找字符串 |
M |
|
|||
257.输出二叉树中所有根节点到叶子的路径 |
E |
|
|||
46.排列 |
M |
|
|||
47.含有相同元素求排列 |
M |
|
|||
77.组合 |
M |
|
|||
39.组合求和 |
M |
|
|||
40.含有相同元素的组合求和 |
M |
|
|||
216.1-9数字的组合求和 |
M |
|
|||
78.子集 |
M |
|
|||
90.含相同元素求子集 |
M |
|
|||
131.分割字符串使每个部分都是回文数 |
M |
|
|||
37.数独 |
H |
|
|||
51.N皇后 |
H |
|
|||
动态规划 |
斐波那契 |
70.爬楼梯 |
E |
|
|
198.强盗抢劫 |
E |
|
|||
213.强盗在环形街道抢劫 |
M |
|
|||
矩阵路径 |
64.矩阵的最小路径和 |
M |
|
||
62.矩阵的总路径数 |
M |
|
|||
数组区间 |
303.数组区间和 |
E |
|
||
413.数组中等差递增子区间的个数 |
M |
|
|||
分割整数 |
343.分割整数的最大乘积 |
M |
|
||
279.按照平方数来分割整数 |
M |
|
|||
91.分割整数构成的字母字符串 |
M |
|
|||
最长递归子序列 |
300.最长递增子序列 |
M |
|
||
646.一组整数对能构成最长的链 |
M |
|
|||
376.最长摆动子序列 |
M |
|
|||
最长公共子序列 |
1143.最长公共子序列 |
M |
|
||
0-1背包 |
416.划分数组为和相等的两部分 |
M |
|
||
494.改变一组数的正负号使得他们的和为一个给定数 |
M |
|
|||
474.01字符构成最多的字符串 |
M |
|
|||
322.找零钱的最小硬币数 |
M |
|
|||
518.找零钱的硬币组合 |
M |
|
|||
139.字符串按单词列表分割 |
M |
|
|||
377.组合总和 |
M |
|
|||
股票交易 |
309.需要冷却期的股票交易 |
M |
|
||
714.需要交易费用的股票交易 |
M |
|
|||
123.只能进行两次股票交易 |
H |
|
|||
188.只能进行K次的股票交易 |
H |
|
|||
字符串编辑 |
583.删除两个字符串的字符使他们相等 |
M |
|
||
72.编辑距离 |
H |
|
|||
650.复制粘贴字符 |
M |
|
|||
数学 |
素数分解 |
204.生成素数序列 |
M |
|
|
最大公约数和最小公倍数 |
204.生成素数序列 |
M |
|
||
进制转换 |
504.7进制 |
E |
|
||
405.16进制 |
E |
|
|||
168.26进制 |
E |
|
|||
阶乘 |
172.统计阶乘尾部有多少个0 |
E |
|
||
字符串加减法 |
67.二进制加减法 |
E |
|
||
415.字符串加法 |
E |
|
|||
相遇问题 |
462.改变数组元素使所有数组元素都相等 |
M |
|
||
多数投票问题 |
169.数组中出现次数多与n/2的元素 |
E |
|
||
其他 |
367.平方数 |
E |
|
||
326.3的n次方 |
E |
|
|||
238.乘积数组 |
M |
|
|||
628.找出数组中乘积最大的3个数 |
E |
|
|||
数据结构 |
链表 |
|
160.找出两个链表的交点 |
E |
|
|
206.链表反转 |
E |
|
||
|
21.归并两个有序链表 |
E |
|
||
|
83.从有序链表中删除重复节点 |
E |
|
||
|
19.删除链表中倒数第N个节点 |
M |
|
||
|
24.交换链表中的相邻节点 |
M |
|
||
|
455.链表求和 |
M |
|
||
|
234.回文链表 |
E |
|
||
|
725.分隔链表 |
M |
|
||
|
328.链表元素按奇偶聚集 |
M |
|
||
树 |
递归 |
104.树的高度 |
E |
|
|
110.平衡术 |
E |
|
|||
543.两个节点最长路径 |
E |
|
|||
226.翻转树 |
E |
|
|||
617.归并两个树 |
E |
|
|||
112.判断路径和是否等于一个数 |
E |
|
|||
437.统计路径和等于一个数的路径量 |
E |
|
|||
572.子树 |
E |
|
|||
101.树的对称 |
E |
|
|||
111.最小路径 |
E |
|
|||
404.统计左叶子节点的和 |
E |
|
|||
687.相同节点值的最大路径长度 |
E |
|
|||
337.间隔遍历 |
M |
|
|||
671.找出二叉树中第二小的节点 |
E |
|
|||
层次遍历 |
637.一棵树,每层节点的平均数 |
E |
|
||
513.得到左下角的节点 |
E |
|
|||
前序中序后序遍历 |
144.非递归实现二叉树的前序遍历 |
M |
|
||
145.非递归实现二叉树的前序遍历 |
M |
|
|||
94.非递归实现二叉树的前序遍历 |
M |
|
|||
BST二叉查找树 |
669.修剪二叉查找树 |
E |
|
||
230.寻找二叉查找树的第K个元素 |
M |
|
|||
235.二叉查找树的最近公共祖先 |
E |
|
|||
236.二叉树的最近公共祖先 |
M |
|
|||
108.从有序数组中构造二叉查找树 |
E |
|
|||
109.根据有序链表构造平衡的二叉树 |
M |
|
|||
653.二叉查找树,找到两个节点等于一个给定值 |
E |
|
|||
530.二叉查找树中查找两节点之差的最小绝对值 |
E |
|
|||
501.寻找二叉查找树中出现次数最多的值 |
E |
|
|||
Trie前缀树,字典树 |
201.实现一个Trie |
M |
|
||
677.实现一个Trie,求前缀和 |
M |
|
|||
栈和队列 |
|
232.用栈实现队列 |
E |
|
|
|
225.用队列实现栈 |
E |
|
||
|
155.最小值栈 |
E |
|
||
|
20.用栈实现括号匹配 |
E |
|
||
|
739.数组中元素与下一个比它大的元素的距离 |
M |
|
||
|
503.循环数组中比当前元素大的下一个元素 |
M |
|
||
哈希表 |
|
1.数组中两个数的和为给定值 |
E |
|
|
|
217.判断数组是否有重复元素 |
E |
|
||
|
594.最长和谐序列 |
E |
|
||
|
128.最长连续序列 |
H |
|
||
字符串 |
|
242.两个字符串包含的字符是否完全相同 |
E |
|
|
|
409.计算一组字符串集合可以组成回文字符串的最大长度 |
E |
|
||
|
205.字符串同构 |
E |
|
||
|
647.回文字符串的个数 |
M |
|
||
|
9.判断一个整数是否是一个回文数 |
E |
|
||
|
696.统计二进制字符串中,连续1和连续0数量相同的子字符串个数 |
E |
|
||
数组和矩阵 |
|
283.把数组中0移到末尾 |
E |
|
|
|
566.改变矩阵维度 |
E |
|
||
|
485.找出数组中最长的连续1 |
E |
|
||
|
240.有序矩阵查找 |
M |
|
||
|
378.有序矩阵的Kth Element |
M |
|
||
|
645.一个数组[1,n]之间,其中一个数被替换成另一个数,找出重复的数和丢失的数 |
E |
|
||
|
287.找出数组中重复的数,数组值在[1,n]之间 |
M |
|
||
|
667.数组相邻差值的个数 |
M |
|
||
|
697.数组的度 |
E |
|
||
|
766.对角元素相等的矩阵 |
E |
|
||
|
565.嵌套矩阵 |
M |
|
||
|
769.分隔数组 |
M |
|
||
图 |
二分图 |
785.判断是否为二分图 |
M |
|
|
拓扑排序 |
207.课程安排的合法性 |
M |
|
||
210.课程安排的顺序 |
M |
|
|||
并查集 |
684.冗余连接 |
M |
|
||
位运算 |
|
461.统计两个数的二进制有多少位不同 |
E |
|
|
|
136.数组中唯一不重复的元素 |
E |
|
||
|
268.找出数组中缺失的那个值 |
E |
|
||
|
260.数组中不重复的两个元素 |
M |
|
||
|
190.翻转一个数的比特位 |
E |
|
||
|
231.判断一个数是不是2的n次方 |
E |
|
||
|
342.判断一个数是不是4的n次方 |
E |
|
||
|
693.判断一个数的位级表示是否不会出现连续1或0 |
E |
|
||
|
476.求一个数的补码 |
E |
|
||
|
371.实现整数的加法 |
E |
|
||
|
318.字符串数组最大乘积 |
M |
|
||
|
338.统计0~n每个数的二进制表示中的1的个数 |
M |
|