1.链表
2.树
3.哈希表
序号 | 名称 | 题解 |
---|---|---|
两数之和 | LeetCode 1 | |
最长连续序列 | LeetCode 128 | |
Pairs of Songs With Total Durations Divisible by 60 | 1010 |
3.栈
4.双指针
快慢指针
碰撞指针:适用于已排序的数组
滑动窗口
序号 | 名称 | 题解 |
---|---|---|
三数之和 | LeetCode 15 | 碰撞指针 |
最接近的三数之和 | LeetCode 16 | 碰撞指针 |
环形链表 | LeetCode 141 | 快慢指针 |
环形链表II | LeetCode 142 | 快慢指针/set |
快乐数 | LeetCode 202 | 快慢指针/set |
无重复字符的最长子串 | LeetCode 3 | 滑动窗口 |
长度最小的子数组 | LeetCode 209 | 滑动窗口 |
反转字符串 | LeetCode 344 | 头尾指针swap |
Longest Substring with At Least K Repeating Characters | LeetCode 395 | 滑动窗口 |
5.动态规划
子串问题常用
6. 排序算法
序号 | 名称 | 题解 |
---|---|---|
冒泡排序 | ||
快速排序 | ||
归并排序 | ||
堆排序 | ||
数组中的第K个最大元素 | LeetCode215 | topK问题 |
前 K 个高频元素 | LeetCode 347 | topK问题 |
最小的k个数 | 剑指 Offer 40 | |
Lexicographical Numbers | 386 | |
Rank Teams by Votes | 1366 | |
Priority Queue
序号 | 名称 | 题解 |
---|---|---|
Meeting Rooms II | 253 |
7.位运算/数学
位运算基础知识
8.深度优先搜索
序号 | 名称 | 题解 |
---|---|---|
岛屿数量 | LeetCode 200 | DFS/BFS |
岛屿的最大面积 | LeetCode 695 | DFS/BFS |
Number of Distinct Islands | 694 | |
被围绕的区域 | LeetCode 130 | BFS/DFS |
机器人的运动范围 | 剑指 Offer 13 | |
The Maze | 490 |
9.深度优先搜索 + 回溯
序号 | 名称 | 题解 |
---|---|---|
组合 | LeetCode 77 | |
组合总和 | LeetCode 39 | |
组合总和II | LeetCode 40 | |
全排列 | LeetCode 46 | |
全排列 II | LeetCode 47 | |
电话号码的字母组合 | LeetCode 17 | |
括号生成 | LeetCode 22 | |
子集 | LeetCode 78 | |
单词搜索 | LeetCode 79 | |
复原 IP 地址 | LeetCode 93 | |
N-Queens | 51 |
10.广度优先搜索
序号 | 名称 | 题解 |
---|---|---|
腐烂的橘子 | LeetCode 994 | 多源BFS |
Shortest Path in a Grid with Obstacles Elimination | LeetCode 1293 | 额外状态 |
11.二分查找
关键词:排好序的数组,O(logN)
序号 | 名称 | 题解 |
---|---|---|
二分查找 | LeetCode 704 | |
在排序数组中查找元素的第一个和最后一个位置 | LeetCode 34 | |
寻找旋转排序数组中的最小值 | LeetCode 153 | 无重复数字,返回index |
寻找旋转排序数组中的最小值 II | LeetCode 154 | 有重复数字,返回index |
搜索旋转排序数组 | LeetCode 33 | 无重复数字,返回index |
搜索旋转排序数组 II | LeetCode 81 | 有重复数字,返回T/F |
搜索旋转数组 | 面试题 10.03. | 有重复数字,返回index |
山脉数组的峰顶索引 | LeetCode 852 | |
寻找峰值 | LeetCode 162 | |
搜索二维矩阵 | LeetCode 74 | |
搜索二维矩阵 II | LeetCode 240 | |
12.字符串
13.数组
greedy
序号 | 名称 | 题解 |
---|---|---|
Two City Scheduling | 1029 | |
Increasing Triplet Subsequence | 334 | |
图
序号 | 名称 | 题解 |
---|---|---|
课程表 | LeetCode 207 | |
课程表II | LeetCode 210 | |
Find All Possible Recipes from Given Supplies | LeetCode 2115 | |
克隆图 | 133 | |
Possible Bipartition | 886 | |
Jump Game IV | 1345 |
| Bus Routes| 815| |
14.设计
序号 | 名称 | 题解 |
---|---|---|
LRU 缓存机制 | LeetCode 146 | HashMap + DoubleLinkedList |
最小栈 | LeetCode 155 | LinkedListNode |
用栈实现队列 | LeetCode 232 | |
用队列实现栈 | LeetCode 225 | |
设计循环队列 | LeetCode 622 | |
Trie | LC 208 | |
Design Twitter | 355 | |
Insert Delete GetRandom O(1) | 380 | |
Design In-Memory File System | 588 |
多线程
序号 | 名称 | 题解 |
---|---|---|
生产者消费者 |