LeetCode题目分类

2,862 阅读11分钟

1.链表

序号名称题解
反转链表leetcode 206
删除链表的节点剑指 Offer 18
移除链表元素leetcode 203
链表中倒数第k个节点剑指 offer 22
删除链表的倒数第N个节点LeetCode 19快慢指针
相交链表 / 两个链表的第一个公共节点剑指 Offer 52
环形链表
环形链表 II
奇偶链表leetcode 328
回文链表面试题 02.06.
两数相加LeetCode 2
两数相加iiLeetCode 445
合并两个升序链表LeetCode 21
合并K个升序链表LeetCode 23
重排链表(对折链表)LeetCode 143
反转链表 IILeetCode 92三指针
K 个一组翻转链表LeetCode 25三指针
排序链表LeetCode 148归并,SC = O(1) or O(logN)
旋转链表LeetCode 61
两两交换链表中的节点LeetCode 24
删除排序链表中的重复元素LeetCode 83
删除排序链表中的重复元素 IILeetCode 82
复制带随机指针的链表LeetCode 138
分隔链表LeetCode 86
排序奇升偶降链表

2.树

序号名称题解
二叉树的前序遍历leetcode 144
二叉树的中序遍历leetcode 94
二叉树的后序遍历leetcode 145
二叉树的层序遍历leetcode 102
二叉树的层序遍历 IIleetcode 107
二叉树的最大深度leetcode 104BFS DFS
二叉树最小深度LeetCode 111DFS
对称二叉树leetcode 101DFS
相同的树LeetCode 100DFS
翻转二叉树LeetCode 226DFS
平衡二叉树LeetCode 110DFS,二叉树深度
二叉树的直径LeetCode 543DFS,二叉树深度
二叉树中的最大路径和LeetCode 124DFS
二叉树展开为链表LeetCode 114DFS BFS
二叉树的所有路径LeetCode 257DFS+回溯
路经总和LeetCode 112DFS
路经总和IILeetCode 113DFS+回溯
Path Sum IVLeetCode 666建树
求根到叶子节点数字之和LeetCode 129DFS/ DFS+回溯
验证二叉搜索树LeetCode 98DFS
二叉树的最近公共祖先LeetCode 236DFS
左叶子之和LeetCode 404DFS
合并二叉树LeetCode 617DFS
从前序与中序遍历序列构造二叉树LeetCode 105DFS
从中序与后序遍历序列构造二叉树LeetCode 106
二叉树的完全性检验LeetCode 958BFS
二叉树最大宽度LeetCode 662BFS
二叉树的锯齿形层序遍历LeetCode 103BFS
二叉树的右视图LeetCode 199BFS
二叉树的层平均值LeetCode 637BFS
在每个树行中找最大值LeetCode 515BFS
二叉搜索树的第k大节点剑指 Offer 54
二叉搜索树中第K小的元素LeetCode 230
另一个树的子树LeetCode 572
树的子结构剑指 Offer 26.
删除二叉搜索树中的节点LeetCode 450
二叉搜索树中的搜索Leetcode 700
二叉搜索树中的插入操作Leetcode 701
将有序数组转换为二叉搜索树LeetCode 108
N 叉树的前序遍历LeetCode 589
N 叉树的后序遍历LeetCode 590
N 叉树的层序遍历LeetCode 429
N 叉树的最大深度LeetCode 559
二叉搜索树转双向循环链表剑指 Offer 36
不同的二叉搜索树LeetCode 96
Step-By-Step Directions From a Binary Tree Node to Another2096
Number of Good Leaf Nodes Pairs1530
Largest BST Subtree333
Find Duplicate Subtrees652

| | | |

3.哈希表

序号名称题解
两数之和LeetCode 1
最长连续序列LeetCode 128
Pairs of Songs With Total Durations Divisible by 601010

3.栈

序号名称题解
每日温度LeetCode 739单调栈
字符串解码LeetCode 394
有效的括号LeetCode 20
Basic CalculatorLeetCode 224
基本计算器 IILeetCode 227
基本计算器 IIILeetCode 772
逆波兰表达式求值LeetCode 150
有效的括号字符串LeetCode 678
移掉k位数字LeetCode 402
Score of ParenthesesLeetCode 856
Minimum Remove to Make Valid Parentheses1249
Next Greater Element II503
Remove All Adjacent Duplicates In String1047
Remove All Adjacent Duplicates In String II1209不超过k个连续
Remove Duplicate Letters316相对位置+字典序

4.双指针

快慢指针

碰撞指针:适用于已排序的数组

滑动窗口

序号名称题解
三数之和LeetCode 15碰撞指针
最接近的三数之和LeetCode 16碰撞指针
环形链表LeetCode 141快慢指针
环形链表IILeetCode 142快慢指针/set
快乐数LeetCode 202快慢指针/set
无重复字符的最长子串LeetCode 3滑动窗口
长度最小的子数组LeetCode 209滑动窗口
反转字符串LeetCode 344头尾指针swap
Longest Substring with At Least K Repeating CharactersLeetCode 395滑动窗口

5.动态规划

子串问题常用

序号名称题解
最大子数组和LeetCode 53
爬楼梯LeetCode 70
打家劫舍LeetCode 198
打家劫舍 IILeetCode 213
买卖股票的最佳时机LeetCode 121用/不用
买卖股票的最佳时机IILeetCode 122不用
不同路径LeetCode 62
不同路径 IILeetCode 63
最小路径和LeetCode 64
最长回文子串LeetCode 5
最长公共子序列LeetCode 1143
最长公共子串 / 最长重复子数组LeetCode 718
最长递增子序列LeetCode 300
最长递增子序列的个数LeetCode 673
零钱兑换LeetCode 322
零钱兑换 IILeetCode 518
斐波那契数LeetCode 509
最大正方形LeetCode 221
三角形最小路径和LeetCode 120
乘积最大子数组LeetCode 152
把数字翻译成字符串剑指 Offer 46
解码方法LeetCode 91
圆环回原点问题补充题
最长有效括号LeetCode 32
单词拆分LeetCode 139
交错字符串LeetCode 97
Champagne TowerLeetCode 799
Video Stitching1024
Edit Distance72

6. 排序算法

序号名称题解
冒泡排序
快速排序
归并排序
堆排序
数组中的第K个最大元素LeetCode215topK问题
前 K 个高频元素LeetCode 347topK问题
最小的k个数剑指 Offer 40
Lexicographical Numbers386
Rank Teams by Votes1366

Priority Queue

序号名称题解
Meeting Rooms II253

7.位运算/数学

位运算基础知识

序号名称题解
只出现一次的数字LeetCode 136异或
2的幂LeetCode 231
位1的个数LeetCode 191
颠倒二进制位LeetCode 190
汉明距离LeetCode 461
Pow(x, n)LeetCode 50
x 的平方根, Sqrt(x)LeetCode 69
有效的完全平方数LeetCode 367关联第69题
整数反转LeetCode 7
回文数LeetCode 9
用 Rand7() 实现 Rand10()LeetCode 470
阶乘后的零LeetCode 172
IP地址字符串转化为整数
整数转化为IP地址字符串
不用加减乘除做加法剑指 Offer 65
Excel表列名称168
Excel表列序号171
第 N 位数字leetcode 400
有效的正方形LeetCode 593

8.深度优先搜索

序号名称题解
岛屿数量LeetCode 200DFS/BFS
岛屿的最大面积LeetCode 695DFS/BFS
Number of Distinct Islands694
被围绕的区域LeetCode 130BFS/DFS
机器人的运动范围剑指 Offer 13
The Maze490

9.深度优先搜索 + 回溯

序号名称题解
组合LeetCode 77
组合总和LeetCode 39
组合总和IILeetCode 40
全排列LeetCode 46
全排列 IILeetCode 47
电话号码的字母组合LeetCode 17
括号生成LeetCode 22
子集LeetCode 78
单词搜索LeetCode 79
复原 IP 地址LeetCode 93
N-Queens51

10.广度优先搜索

序号名称题解
腐烂的橘子LeetCode 994多源BFS
Shortest Path in a Grid with Obstacles EliminationLeetCode 1293额外状态

11.二分查找

关键词:排好序的数组,O(logN)

序号名称题解
二分查找LeetCode 704
在排序数组中查找元素的第一个和最后一个位置LeetCode 34
寻找旋转排序数组中的最小值LeetCode 153无重复数字,返回index
寻找旋转排序数组中的最小值 IILeetCode 154有重复数字,返回index
搜索旋转排序数组LeetCode 33无重复数字,返回index
搜索旋转排序数组 IILeetCode 81有重复数字,返回T/F
搜索旋转数组面试题 10.03.有重复数字,返回index
山脉数组的峰顶索引LeetCode 852
寻找峰值LeetCode 162
搜索二维矩阵LeetCode 74
搜索二维矩阵 IILeetCode 240

12.字符串

序号名称题解
字符串相加LeetCode 415两数相加 合并链表
36进制加法补充题
二进制求和LeetCode 67
字符串相乘LeetCode 43
字符串转换整数 (atoi)LeetCode 8
实现 strStr() / indexOf()LeetCode 28
翻转字符串里的单词LeetCode 151
反转字符串中的单词 IIILeetCode 557
比较版本号LeetCode 165
验证IP地址LeetCode 468
验证回文串LeetCode 125
验证回文字符串 ⅡLeetCode 680
最长公共前缀LeetCode 14
删除字符串中的所有相邻重复项LeetCode 1047
有效的字母异位词LeetCode 242
重复的子字符串LeetCode 459
Find Palindrome With Fixed Length2217
Backspace String Compare844
Longest Repeating Character Replacement424
Number of Ways to Split a String1573

13.数组

序号名称题解
颜色分类LeetCode 75数组、双指针
三个数的最大乘积LeetCode 628
移动零LeetCode 283
有效的山脉数组LeetCode 941
旋转图像LeetCode 48
螺旋矩阵LeetCode 54
螺旋矩阵IILeetCode 59
合并两个有序数组LeetCode 88
杨辉三角LeetCode 118
杨辉三角 IILeetCode 119
合并区间LeetCode 56
调整数组顺序使奇位于偶前面剑指 Offer 21
多数元素LeetCode 169
存在重复元素LeetCode 217不能原地hash
寻找重复数LeetCode 287原地hash, nums[i]=i+1, 一个重复,找一个
数组中重复的数据LeetCode 442原地hash, nums[i]=i+1, 多个重复,全找出
数组中重复的数字剑指 Offer 03原地hash,nums[i]=i,多个重复,找一个
缺失的第一个正数LeetCode 41原地hash
下一个排列LeetCode 31
Next Greater Element III556
旋转数组LeetCode 189
两个数组的交集LeetCode 349
和为K的子数组LeetCode 560暴力/ 前缀和+hashmap
对角线遍历LeetCode 498
最大数LeetCode 179
岛屿的周长LeetCode 463
有序数组的平方LeetCode 977
删除有序数组中的重复项LeetCode 26
压缩字符串LeetCode 443
最大交换LeetCode 670
盛最多水的容器LeetCode 11
接雨水LeetCode 42
跳跃游戏LeetCode 55
跳跃游戏iilc 45
扑克牌中的顺子剑之61
Sentence Screen Fitting418
Task Scheduler621
Find Winner on a Tic Tac Toe Game1275
Design Tic-Tac-Toe348
Rotating the Box1861
Maximum Length of Semi-Decreasing Subarrays2863
Merge Operations to Turn Array Into a Palindrome2422
Missing Ranges163
Product of the Last K Numbers1352

greedy

序号名称题解
Two City Scheduling1029
Increasing Triplet Subsequence334

序号名称题解
课程表LeetCode 207
课程表IILeetCode 210
Find All Possible Recipes from Given SuppliesLeetCode 2115
克隆图133
Possible Bipartition886
Jump Game IV1345

| Bus Routes| 815| |

14.设计

序号名称题解
LRU 缓存机制LeetCode 146HashMap + DoubleLinkedList
最小栈LeetCode 155LinkedListNode
用栈实现队列LeetCode 232
用队列实现栈LeetCode 225
设计循环队列LeetCode 622
TrieLC 208
Design Twitter355
Insert Delete GetRandom O(1)380
Design In-Memory File System588

多线程

序号名称题解
生产者消费者