LeetCode 解决方案索引
这是我的LeetCode解题讲解系列的总索引。如果您喜欢这些解题思路或觉得它们有用,请点赞这篇文章。
难题解决方案:
| # | 标题 | 相关主题 |
|---|---|---|
| 32 | 最长有效括号 | 堆 |
| 51 | 北皇后区 | 回溯法、深度优先搜索、递归、位操作 |
| 52 | N-Queens II | 回溯法、深度优先搜索、递归、位操作 |
| 65 | 有效号码 | 细绳 |
| 164 | 最大间隙 | 桶排序,数学 |
| 329 | 矩阵中的最长递增路径 | 递归、深度优先搜索、记忆化 |
| 336 | 回文对 | 地图 |
| 354 | 俄罗斯套娃信封 | LIS、二分查找、DP |
| 630 | 课程安排 III | 优先级队列,堆 |
| 745 | 前缀和后缀搜索 | 尝试 |
| 778 | 在上涨的水中游泳 | 迪杰斯特拉算法、优先队列、堆 |
| 871 | 最少加油次数 | 最大优先级队列、最大堆、贪婪 |
| 895 | 最大频率堆栈 | 频率图,堆叠 |
| 906 | 超级回文 | 数学,回文 |
| 936 | 序列盖章 | 角色面具 |
| 968 | 二叉树相机 | 深度优先搜索,递归 |
| 987 | 二叉树的垂直顺序遍历 | 树、深度优先搜索、递归、位操作 |
| 1074 | 子矩阵之和等于目标值的数量 | 矩阵,地图 |
| 1192 | 网络中的关键连接 | 塔詹的 |
| 1354 | 构建具有多个和的目标数组 | 优先级队列,堆 |
| 1383 | 团队发挥最大潜能 | 优先级队列,堆 |
| 1713 | 生成子序列所需的最少操作 | LCS、LIS、二分查找 |
| 1735 | 计算用乘积构成数组的方法数 | 数学 |
| 1739 | 积木盒 | 数学 |
中等难度问题解决方案:
| # | 标题 | 相关主题 |
|---|---|---|
| 11 | 盛水最多的容器 | 推拉窗 |
| 12 | 整数转罗马数字 | 数学 |
| 17 | 电话号码的字母组合 | 深度优先搜索,递归 |
| 19 | 从列表末尾移除第 N 个节点 | 链表 |
| 22 | 生成括号 | 递归,位操作 |
| 29 | 两个整数相除(版本 1) | 位操作 |
| 29 | 整数除法(版本 2) | 数学 |
| 31 | 下一个排列 | 数组,数学 |
| 34 | 查找已排序数组中元素的第一个和最后一个位置 | 二分查找 |
| 45 | 跳跃游戏 II | 大批 |
| 48 | 旋转图像 | 矩阵 |
| 63 | 独特路径 II | 矩阵,DP |
| 71 | 简化路径 | 堆叠式滑动窗口 |
| 86 | 分区表 | 链表 |
| 102 | 二叉树层序遍历 | 二叉树、广度优先搜索、层序遍历、队列 |
| 105 | 利用前序遍历和中序遍历构建二叉树 | 二叉树、前序遍历、中序遍历、递归 |
| 109 | 将有序列表转换为二叉搜索树 | 树、链表、中序遍历、递归、弗洛伊德算法 |
| 114 | 将二叉树扁平化为链表 | 二叉树、前序遍历、递归 |
| 120 | 三角形 | DP |
| 128 | 最长连续序列 | 映射,数组 |
| 138 | 使用随机指针复制列表 | 链表 |
| 150 | 评估逆波兰表示法 | 数学,堆栈 |
| 199 | 二叉树右侧视图 | 树、广度优先搜索、深度优先搜索、递归 |
| 240 | 搜索二维矩阵 II | 矩阵,二分查找 |
| 284 | 窥视迭代器 | 班级 |
| 304 | 二维范围求和查询 - 不可变 | 矩阵、动态规划、前缀和 |
| 318 | 词长乘积最大值 | 位操作 |
| 322 | 零钱 | 深度优先搜索,递归 |
| 341 | 扁平化嵌套列表迭代器 | 类、队列、递归 |
| 376 | 摆动子序列 | 后续 |
| 377 | 组合和 IV | DP |
| 413 | 算术切片 | 数学 |
| 417 | 太平洋大西洋水流 | 深度优先搜索、递归、动态规划 |
| 423 | 从英文中重建原始数字 | 频率图 |
| 462 | 最小移动次数到达相等数组元素 II | 数学,数组 |
| 473 | 火柴棍变方块 | 回溯,递归 |
| 474 | 1 和 0 | DP |
| 478 | 在圆内生成随机点 | 数学 |
| 524 | 通过删除字典中最长的单词 | 细绳 |
| 535 | 对 TinyURL 进行编码和解码 | 地图 |
| 538 | 将二叉搜索树转换为大树 | 树,无序 |
| 554 | 砖墙 | 频率图 |
| 576 | 超出边界的路径 | DP |
| 581 | 最短未排序连续子数组 | 大批 |
| 583 | 对两个字符串进行删除操作 | LCS,DP |
| 609 | 查找系统中的重复文件 | 映射,字符串 |
| 622 | 设计环形排队系统 | 链表 |
| 623 | 向树中添加一行 | 二叉树、深度优先搜索、递归 |
| 647 | 回文子串 | 数学 |
| 665 | 非递减数组 | 大批 |
| 667 | 美丽的安排 II | 数学 |
| 669 | 修剪二叉树 | 树,递归 |
| 684 | 冗余连接 | 并查集,图 |
| 695 | 岛屿最大面积 | 矩阵、深度优先搜索、递归 |
| 714 | 买卖股票的最佳时机及交易手续费 | 状态机 |
| 729 | 我的日历 | 类,链表 |
| 752 | 打开锁 | 图、广度优先搜索、队列 |
| 775 | 全球和局部反转 | 数学 |
| 784 | 字母大小写排列 | 递归,深度优先搜索 |
| 785 | 图是二分图吗? | 广度优先搜索,位操作 |
| 795 | 具有有界最大值的子数组的数量 | 数学,数组 |
| 816 | 模糊坐标 | 细绳 |
| 820 | 单词短编码(版本 1) | 放 |
| 820 | 单词短编码(版本 2) | 尝试 |
| 823 | 带因子的二叉树 | 二叉树、地图、数学 |
| 841 | 钥匙和房间 | DFS |
| 856 | 括号得分 | 二进制,数学 |
| 869 | 重新排序的 2 的幂 | 数学 |
| 870 | 优势洗牌 | 大批 |
| 890 | 查找和替换模式 | 地图,面具 |
| 916 | 词子集 | 频率图 |
| 923 | 3Sum 有多重性 | 频率图,组合数学 |
| 946 | 验证堆栈序列 | 栈,2指针 |
| 966 | 元音拼写检查器 | 地图、集合、遮罩 |
| 970 | 强大的整数 | 放 |
| 971 | 翻转二叉树以匹配前序遍历 | 二叉树、深度优先搜索、递归 |
| 991 | 坏掉的计算器 | 数学 |
| 1048 | 最长链 | 设置、地图、DP |
| 1091 | 二进制矩阵中的最短路径 | 广度优先搜索、矩阵、位操作 |
| 1209 | 删除字符串 II 中所有相邻的重复项 | 递归,栈 |
| 1249 | 最小删除量以形成有效的括号 | 堆 |
| 1268 | 搜索建议系统 | 双指针系统 |
| 1302 | 最深处的叶子总和 | 广度优先搜索、队列、深度优先搜索、递归 |
| 1329 | 按对角线排序矩阵 | 矩阵 |
| 1396 | 设计地下系统 | 班级,地图 |
| 1423 | 从卡牌中获得的最高分数 | 推拉窗 |
| 1461 | 检查字符串是否包含所有长度为 K 的二进制码 | 二进制,位操作 |
| 1465 | 蛋糕经水平和垂直切割后的最大面积 | 数组,数学 |
| 1551 | 使数组相等所需的最少操作 | 数学 |
| 1631 | 最省力的路径 | 广度优先搜索、Dijkstra算法、堆 |
| 1642 | 你能到达的最远建筑物 | 堆 |
| 1663 | 具有给定数值的最小字符串 | 数学 |
| 1673 | 找出最具竞争力的子序列 | 堆 |
| 1675 | 最小化阵列偏差 | 堆 |
| 1680 | 连续二进制数的连接 | 二进制,位操作 |
| 1690 | 石棋七 | DP |
| 1695 | 最大擦除值 | 数组,滑动窗口 |
| 1696 | 跳跃游戏 VI | DP、Deque、In-Place、滑动窗 |
| 1717 | 删除子字符串获得最高分(版本 1) | DP,堆栈 |
| 1717 | 删除子字符串获得最高分(版本 2) | 细绳 |
| 1721 | 交换链表中的节点 | 链表 |
| 1734 | 解码异或排列 | 按位异或,数学 |
| 1737 | 更改最小字符数以满足以下三个条件之一 | 频率图,数学 |
| 1738 | 找到第 K 个最大的异或坐标值 | 按位异或、动态规划、堆、数学 |
简单问题解决方案:
| # | 标题 | 相关主题 |
|---|---|---|
| 13 | 罗马数字转整数 | 数学 |
| 118 | 帕斯卡三角形 | 数组,数学 |
| 141 | 链表循环 | 链表,弗洛伊德的 |
| 160 | 两个链表的交集 | 链表 |
| 204 | 质数计数 | 数学 |
| 242 | 有效的字谜 | 频率图 |
| 243 | 回文链表 | 链表,弗洛伊德的 |
| 268 | 缺失号码 | 数学 |
| 326 | 三的力量 | 数学 |
| 509 | 斐波那契数列 | 数学 |
| 589 | N叉树前序遍历 | 递归,深度优先搜索 |
| 594 | 最长和声子序列 | 频率图 |
| 595 | 分发糖果 | 放 |
| 637 | 二叉树各层平均数 | 二叉树,广度优先搜索 |
| 645 | 设置不匹配(版本 1) | 数组,数学 |
| 645 | 设置不匹配(版本 2) | 数组,数学 |
| 696 | 计算二进制子字符串 | 字符串,数学 |
| 706 | 设计哈希映射(版本 1) | 映射,数组 |
| 706 | 设计哈希映射(版本 2) | 哈希函数,链表 |
| 709 | 转换为小写 | 细绳 |
| 746 | 爬楼梯的最低成本 | DP,阵列 |
| 821 | 到角色的最短距离 | DP |
| 953 | 验证外星词典 | 地图 |
| 1332 | 删除回文子序列 | 细绳 |
| 1337 | 矩阵中最弱的 K 行(版本 1) | 矩阵 |
| 1337 | 矩阵中最弱的 K 行(版本 2) | 矩阵、二分查找、 堆、位操作 |
| 1342 | 将一个数化简为零所需的步骤数 | 数学 |
| 1480 | 一维数组的运行和 | 前缀和 |
| 1704 | 判断字符串的两半是否相同 | 细绳 |
| 1710 | 卡车上的最大载货量 | 排序,数组 |