LeetCode 题解总目录


01_数组与哈希(含双指针、矩阵)(37 篇)

    1. 两数之和(Two Sum)
    1. 盛最多水的容器(Container With Most Water)
    1. 三数之和
    1. 有效的数独
    1. 删除有序数组中的重复项
    1. 下一个排列
    1. 缺失的第一个正数
    1. 接雨水(Trapping Rain Water)
    1. 旋转图像(Rotate Image)
    1. 字母异位词分组(Group Anagrams)
    1. 螺旋矩阵
    1. 合并区间(Merge Intervals)
    1. 矩阵置零
    1. 颜色分类
    1. 合并两个有序数组
    1. 验证回文串
    1. 最长连续序列(Longest Consecutive Sequence)
    1. 两数之和 II - 输入有序数组
    1. 多数元素(Majority Element)
    1. 旋转数组
    1. 存在重复元素(Contains Duplicate)
    1. 存在重复元素 II
    1. 除自身以外数组的乘积(Product of Array Except Self)
    1. 有效的字母异位词(Valid Anagram)
    1. 丢失的数字(Missing Number)
    1. 移动零(Move Zeroes)
    1. 寻找重复数(Find the Duplicate Number)
    1. 反转字符串中的元音字母
    1. 两个数组的交集(Intersection of Two Arrays)
    1. 两个数组的交集 II
    1. O(1) 时间插入、删除和获取随机元素
    1. 找到所有数组中消失的数字(Find All Numbers Disappeared in an Array)
    1. 连续数组
    1. 和为 K 的子数组
    1. 有效三角形的个数
    1. 验证回文串 II

02_字符串 (12 篇)

    1. 最长公共前缀
    1. 找出字符串中第一个匹配项的下标(KMP) ⭐常考
    1. 字符串相乘
    1. 最后一个单词的长度
    1. 复原 IP 地址
    1. 验证回文串 ⭐常考
    1. 反转字符串中的单词
    1. 比较版本号
    1. 反转字符串
    1. 判断子序列
    1. 字符串相加
    1. 字符串转换整数 (atoi)

03_栈与队列 (7 篇)

    1. 有效括号(Valid Parentheses)
    1. 柱状图中最大的矩形 💀困难
    1. 最小栈
    1. 用队列实现栈
    1. 用栈实现队列
    1. 字符串解码
    1. 每日温度 ⭐常考

04_链表 (19 篇)

    1. 两数相加 ⭐常考
    1. 删除链表的倒数第 N 个结点
    1. 合并两个有序链表(Merge Two Sorted Lists)
    1. 两两交换链表中的节点(Swap Nodes in Pairs)
    1. K 个一组翻转链表 ⭐常考
    1. 旋转链表
    1. 删除排序链表中的重复元素 II
    1. 删除排序链表中的重复元素
    1. 分隔链表
    1. 反转链表 II
    1. 复制带随机指针的链表 ⭐常考
    1. 环形链表(Linked List Cycle)
    1. 环形链表 II(Linked List Cycle II)
    1. 重排链表
    1. 排序链表
    1. 相交链表
    1. 反转链表(Reverse Linked List) ⭐常考
    1. 回文链表
    1. 寻找重复数(数组版快慢指针)

05_二叉树 (22 篇)

    1. 二叉树的中序遍历(Binary Tree Inorder Traversal) ⭐常考
    1. 验证二叉搜索树(Validate Binary Search Tree) ⭐常考
    1. 对称二叉树(Symmetric Tree) ⭐常考
    1. 二叉树的层序遍历(Binary Tree Level Order Traversal) ⭐常考
    1. 二叉树的锯齿形层序遍历(Binary Tree Zigzag Level Order Traversal) ⭐常考
    1. 二叉树的最大深度(Maximum Depth of Binary Tree) ⭐常考
    1. 从前序与中序遍历序列构造二叉树 ⭐常考
    1. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree)
    1. 平衡二叉树(Balanced Binary Tree)
    1. 路径总和(Path Sum)
    1. 二叉树展开为链表(Flatten Binary Tree to Linked List) ⭐常考
    1. 二叉树中的最大路径和(Binary Tree Maximum Path Sum) 💀困难
    1. 二叉树的前序遍历(Binary Tree Preorder Traversal) ⭐常考
    1. 二叉树的后序遍历(Binary Tree Postorder Traversal)
    1. 二叉树的右视图(Binary Tree Right Side View)
    1. 翻转二叉树(Invert Binary Tree) ⭐常考
    1. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
    1. 二叉树的最近公共祖先(Lowest Common Ancestor of a Binary Tree) ⭐常考
    1. 二叉树的序列化与反序列化(Serialize and Deserialize Binary Tree) 💀困难
    1. 路径总和 III(Path Sum III)
    1. 二叉树的直径(Diameter of Binary Tree)
    1. 另一棵树的子树(Subtree of Another Tree)
    1. 二叉树剪枝(Binary Tree Pruning)

06_堆 (3 篇)

    1. 数组中的第K个最大元素(Kth Largest Element in an Array) ⭐常考
    1. 前 K 个高频元素(Top K Frequent Elements) ⭐常考
    1. 数据流的中位数(Find Median from Data Stream) 💀困难

07_排序 (3 篇)

    1. 排序数组(手撕快排) ⭐常考
  • 手撕归并排序(Merge Sort) ⭐常考
  • 手撕堆排序(Heap Sort) ⭐常考

08_二分查找 (13 篇)

    1. 寻找两个正序数组的中位数 💀困难
    1. 搜索旋转排序数组(Search in Rotated Sorted Array) ⭐常考
    1. 在排序数组中查找元素的第一个和最后一个位置 ⭐常考
    1. 搜索插入位置(Search Insert Position)
    1. Pow(x, n)
    1. x 的平方根(Sqrt(x))
    1. 搜索二维矩阵(Search a 2D Matrix)
    1. 寻找峰值(Find Peak Element)
    1. 第一个错误的版本(First Bad Version)
    1. 有序矩阵中第 K 小的元素
    1. 搜索二维矩阵 II(Search a 2D Matrix II)
    1. 寻找旋转排序数组中的最小值
    1. 二分查找(Binary Search)

09_滑动窗口 (7 篇)

    1. 无重复字符的最长子串(Longest Substring Without Repeating Characters) ⭐常考
    1. 串联所有单词的子串(Substring with Concatenation of All Words) 💀困难
    1. 最小覆盖子串(Minimum Window Substring) 💀困难
    1. 长度最小的子数组(Minimum Size Subarray Sum)
    1. 滑动窗口最大值(Sliding Window Maximum) 💀困难
    1. 找到字符串中所有字母异位词(Find All Anagrams in a String)
    1. 字符串的排列(Permutation in String)

10_回溯 (12 篇)

    1. 电话号码的字母组合
    1. 括号生成(Generate Parentheses)
    1. 组合总和(Combination Sum)
    1. 组合总和 II(Combination Sum II)
    1. 全排列(Permutations)
    1. 全排列 II(Permutations II)
    1. N 皇后(N-Queens) 💀困难
    1. 组合(Combinations)
    1. 子集(Subsets)
    1. 单词搜索(Word Search)
    1. 子集 II(Subsets II)
    1. 分割回文串

11_贪心 (10 篇)

    1. 跳跃游戏 II(Jump Game II)
    1. 跳跃游戏(Jump Game)
    1. 买卖股票的最佳时机 II
    1. 加油站(Gas Station)
    1. 根据身高重建队列(Queue Reconstruction by Height)
    1. 无重叠区间(Non-overlapping Intervals)
    1. 用最少数量的箭引爆气球(Minimum Number of Arrows to Burst Balloons)
    1. 任务调度器(Task Scheduler)
    1. 划分字母区间(Partition Labels)
    1. 买卖股票的最佳时机(Best Time to Buy and Sell Stock)

12_图论 (9 篇)

    1. 被围绕的区域
    1. 岛屿数量 ⭐常考
    1. 课程表
    1. 课程表 II
    1. 太平洋大西洋水流问题
    1. 省份数量
    1. 冗余连接
    1. 岛屿的最大面积
    1. 腐烂的橘子

13_动态规划 (25 篇)

    1. 最长回文子串
    1. 最长有效括号
    1. 不同路径(Unique Paths)
    1. 不同路径 II
    1. 最小路径和
    1. 爬楼梯(Climbing Stairs)
    1. 编辑距离
    1. 解码方法
    1. 杨辉三角(Pascal’s Triangle)
    1. 三角形最小路径和
    1. 单词拆分
    1. 乘积最大子数组
    1. 打家劫舍
    1. 打家劫舍 II
    1. 最大正方形
    1. 完全平方数
    1. 最长递增子序列
    1. 最佳买卖股票时机含冷冻期 💀含冷冻期
    1. 零钱兑换
    1. 打家劫舍 III 💀树形DP
    1. 分割等和子集
    1. 目标和
    1. 回文子串
    1. 最小花费爬楼梯
    1. 最长公共子序列

14_数学与位运算 (6 篇)

    1. 只出现一次的数字
    1. 阶乘后的零(Factorial Trailing Zeroes)
    1. 位1的个数(Number of 1 Bits)
    1. 快乐数(Happy Number)
    1. 2的幂(Power of Two)
    1. 用 Rand7 实现 Rand10

15_设计题 (2 篇)

    1. LRU 缓存(LRU Cache) ⭐常考
    1. 实现 Trie (前缀树)

16_SQL高频 (6 篇)

    1. 组合两个表(Combine Two Tables)
    1. 第二高的薪水(Second Highest Salary)
    1. 第N高的薪水(Nth Highest Salary)
    1. 分数排名(Rank Scores)
    1. 连续出现的数字(Consecutive Numbers)
    1. 部门工资最高的员工(Department Highest Salary)

相关链接