Solve problems from Leetcode.
Leetcode 题解
| # | 题名 | 难度 |
|---|---|---|
| 1 | 两数之和 | 简单 |
| 2 | 两数相加 | 中等 |
| 3 | 无重复字符的最长子串 | 中等 |
| 4 | 寻找两个有序数组的中位数 | 困难 |
| 5 | 最长回文子串 | 中等 |
| 6 | Z字形变换 | 中等 |
| 7 | 整数反转 | 简单 |
| 8 | 字符串转换整数(atoi) | 中等 |
| 9 | 回文数 | 简单 |
| 10 | 正则表达式匹配 | 困难 |
| 11 | 盛最多水的容器 | 中等 |
| 12 | 整数转罗马数字 | 中等 |
| 13 | 罗马数字转整数 | 简单 |
| 14 | 最长公共前缀 | 简单 |
| 15 | 三数之和 | 中等 |
| 16 | 最接近的三数之和 | 中等 |
| 17 | 电话号码的字母组合 | 中等 |
| 18 | 四数之和 | 中等 |
| 19 | 删除链表的倒数第N个节点 | 简单 |
| 20 | 有效的括号 | 简单 |
| 21 | 合并两个有序链表 | 中等 |
| 22 | 括号生成 | 中等 |
| 23 | 合并K个排序链表 | 困难 |
| 24 | 两两交换链表中的节点 | 中等 |
| 25 | K个一组翻转链表 | 困难 |
| 26 | 删除排序数组中的重复项 | 简单 |
| 27 | 移除元素 | 简单 |
| 28 | 实现strStr() | 简单 |
| 29 | 两数相除 | 中等 |
| 30 | 串联所有单词的子串 | 困难 |
| 31 | 下一个排列 | 中等 |
| 32 | 最长有效括号 | 困难 |
| 33 | 搜索旋转排序数组 | 中等 |
| 34 | 在排序数组中查找元素的第一个和最后一个位置 | 中等 |
| 35 | 搜索插入位置 | 简单 |
| 36 | 有效的数独 | 中等 |
| 37 | 解数独 | 困难 |
| 38 | 外观数列 | 简单 |
| 39 | 组合总和 | 中等 |
| 40 | 组合总和II | 中等 |
| 41 | 缺失的第一个正数 | 困难 |
| 42 | 接雨水 | 困难 |
| 43 | 字符串相乘 | 中等 |
| 44 | 通配符匹配 | 困难 |
| 45 | 跳跃游戏II | 困难 |
| 46 | 全排列 | 中等 |
| 47 | 全排列II | 中等 |
| 48 | 旋转图像 | 中等 |
| 49 | 字母异位词分组 | 中等 |
| 50 | Pow(x,n) | 中等 |
| 51 | N皇后 | 困难 |
| 52 | N皇后II | 困难 |
| 53 | 最大子序和 | 简单 |
| 54 | 螺旋矩阵 | 中等 |
| 55 | 跳跃游戏 | 中等 |
| 56 | 合并区间 | 中等 |
| 57 | 插入区间 | 困难 |
| 58 | 最后一个单词的长度 | 简单 |
| 59 | 螺旋矩阵II | 中等 |
| 60 | 第k个排列 | 中等 |
| 61 | 旋转链表 | 中等 |
| 62 | 不同路径 | 中等 |
| 63 | 不同路径II | 中等 |
| 64 | 最小路径和 | 中等 |
| 65 | 有效数字 | 困难 |
| 66 | 加一 | 简单 |
| 67 | 二进制求和 | 简单 |
| 68 | 文本左右对齐 | 困难 |
| 69 | x的平方根 | 简单 |
| 70 | 爬楼梯 | 简单 |
| 71 | 简化路径 | 中等 |
| 72 | 编辑距离 | 困难 |
| 73 | 矩阵置零 | 中等 |
| 74 | 搜索二维矩阵 | 中等 |
| 75 | 颜色分类 | 中等 |
| 76 | 最小覆盖子串 | 困难 |
| 77 | 组合 | 中等 |
| 78 | 子集 | 中等 |
| 79 | 单词搜索 | 中等 |
| 80 | 删除排序数组中的重复项II | 中等 |
| 81 | 搜索旋转排序数组II | 中等 |
| 82 | 删除排序链表中的重复元素II | 中等 |
| 83 | 删除排序链表中的重复元素 | 简单 |
| 84 | 柱状图中最大的矩形 | 困难 |
| 85 | 最大矩形 | 困难 |
| 86 | 分隔链表 | 中等 |
| 87 | 扰乱字符串 | 困难 |
| 88 | 合并两个有序数组 | 简单 |
| 89 | 格雷编码 | 中等 |
| 90 | 子集II | 中等 |
| 91 | 解码方法 | 中等 |
| 92 | 反转链表II | 中等 |
| 93 | 复原IP地址 | 中等 |
| 94 | 二叉树的中序遍历 | 中等 |
| 95 | 不同的二叉搜索树II | 中等 |
| 96 | 不同的二叉搜索树 | 中等 |
| 97 | 交错字符串 | 困难 |
| 98 | 验证二叉搜索树 | 中难 |
| 99 | 恢复二叉搜索树 | 困难 |
| 100 | 相同的树 | 简单 |
| 101 | 对称二叉树 | 简单 |
| 102 | 二叉树的层序遍历 | 中等 |
| 103 | 二叉树的锯齿形层序遍历 | 中等 |
| 104 | 二叉树的最大深度 | 简单 |
| 107 | 二叉树的层序遍历 II | 简单 |
| 108 | 将有序数组转换为二叉搜索树 | 简单 |
| 109 | 有序链表转换二叉搜索树 | 中等 |
| 110 | 平衡二叉树 | 简单 |
| 111 | 二叉树的最小深度 | 简单 |
| 112 | 路径总和 | 简单 |
| 114 | 二叉树展开为链表) | 中等 |
| 118 | 杨辉三角 | 简单 |
| 120 | 三角形最小路径和 | 中等 |
| 122 | 买卖股票的最佳时机 II | 简单 |
| 123 | 买卖股票的最佳时机 III | 困难 |
| 124 | 二叉树中的最大路径和 | 困难 |
| 125 | 验证回文串 | 简单 |
| 129 | 求根到叶子节点数字之和 | 中等 |
| 130 | 被围绕的区域 | 中等 |
| 133 | 克隆图 | 中等 |
| 135 | 分发糖果 | 困难 |
| 136 | 只出现一次的数字 | 简单 |
| 139 | 单词拆分 | 中等 |
| 141 | 环形链表 | 简单 |
| 142 | 环形链表 II | 中等 |
| 147 | 对链表进行插入排序 | 中等 |
| 148 | 排序链表 | 中等 |
| 153 | 寻找旋转排序数组中的最小值 | 简单 |
| 154 | 寻找旋转排序数组中的最小值 II | 中等 |
| 155 | 最小栈 | 简单 |
| 164 | 最大间距 | 困难 |
| 167 | 两数之和 II - 输入有序数组 | 简单 |
| 174 | 地下城游戏 | 困难 |
| 188 | 买卖股票的最佳时机 IV | 困难 |
| 198 | 旋转数组 | 中等 |
| 198 | 打家劫舍 | 简单 |
| 201 | 数字范围按位与 | 中等 |
| 204 | 计数质数 | 简单 |
| 205 | 同构字符串 | 简单 |
| 206 | 反转链表 | 简单 |
| 207 | 课程表 | 中等 |
| 209 | 长度最小的子数组 | 中等 |
| 214 | 最短回文串 | 困难 |
| 215 | 数组中的第K个最大元素 | 中等 |
| 216 | 组合总和 III | 中等 |
| 217 | 存在重复元素 | 简单 |
| 222 | 完全二叉树的节点个数 | 中等 |
| 224 | 基本计算器 | 困难 |
| 227 | 基本计算器 II | 中等 |
| 228 | 汇总区间 | 简单 |
| 234 | 回文链表 | 简单 |
| 239 | 滑动窗口最大值 | 困难 |
| 242 | 有效的字母异位词 | 简单 |
| 257 | 二叉树的所有路径 | 简单 |
| 283 | 移动零 | 简单 |
| 389 | 找不同 | 简单 |
| 290 | 单词规律 | 简单 |
| 297 | 二叉树的序列化与反序列化 | 困难 |
| 303 | 区域和检索 - 数组不可变 | 简单 |
| 304 | 二维区域和检索 - 矩阵不可变 | 中等 |
| 309 | 最佳买卖股票时机含冷冻期 | 中等 |
| 312 | 戳气球 | 困难 |
| 315 | 计算右侧小于当前元素的个数 | 困难 |
| 316 | 去除重复字母 | 中等 |
| 321 | 拼接最大数 | 困难 |
| 327 | 区间和的个数 | 困难 |
| 328 | 奇偶链表 | 中等 |
| 329 | 矩阵中的最长递增路径 | 困难 |
| 330 | 按要求补齐数组 | 困难 |
| 332 | 重新安排行程 | 中等 |
| 336 | 回文对 | 困难 |
| 337 | 打家劫舍 III | 中等 |
| 338 | 比特位计数 | 中等 |
| 343 | 整数拆分 | 中等 |
| 347 | 前 K 个高频元素 | 中等 |
| 349 | 两个数组的交集 | 简单 |
| 350 | 两个数组的交集 II | 简单 |
| 376 | 摆动序列 | 中等 |
| 378 | 有序矩阵中第K小的元素 | 中等 |
| 381 | O(1) 时间插入、删除和获取随机元素 - 允许重复 | 困难 |
| 387 | 字符串中的第一个唯一字符 | 简单 |
| 392 | 判断子序列 | 简单 |
| 395 | 至少有 K 个重复字符的最长子串 | 中等 |
| 399 | 除法求值 | 中等 |
| 406 | 根据身高重建队列 | 中等 |
| 410 | 分割数组的最大值 | 困难 |
| 415 | 字符串相加 | 简单 |
| 424 | 替换后的最长重复字符 | 中等 |
| 435 | 无重叠区间 | 中等 |
| 445 | 两数相加 II | 中等 |
| 452 | 最少数量的箭引爆气球 | 中等 |
| 454 | 四数相加 II | 中等 |
| 455 | 分发饼干 | 简单 |
| 459 | 重复的子字符串 | 简单 |
| 463 | 岛屿的周长 | 简单 |
| 480 | 滑动窗口中位数 | 困难 |
| 485 | 最大连续1的个数 | 简单 |
| 486 | 递增子序列 | 中等 |
| 491 | 递增子序列 | 中等 |
| 493 | 翻转对 | 困难 |
| 509 | 斐波那契数 | 简单 |
| 529 | 扫雷游戏 | 中等 |
| 530 | 二叉搜索树的最小绝对差 | 简单 |
| 546 | 移除盒子 | 困难 |
| 547 | 省份数量 | 中等 |
| 557 | 反转字符串中的单词 III | 简单 |
| 567 | 字符串的排列 | 中等 |
| 605 | 种花问题 | 简单 |
| 621 | 任务调度器 | 中等 |
| 628 | 三个数的最大乘积 | 简单 |
| 632 | 最小区间 | 困难 |
| 643 | 子数组最大平均数 I | 简单 |
| 647 | 回文子串 | 中等 |
| 649 | Dota2 参议院 | 中等 |
| 657 | 机器人能否返回原点 | 简单 |
| 659 | 分割数组为连续子序列 | 中等 |
| 659 | 非递减数列 | 简单 |
| 674 | 最长连续递增序列 | 简单 |
| 679 | 24点游戏 | 困难 |
| 684 | 冗余连接 | 中等 |
| 696 | 计数二进制子串 | 简单 |
| 705 | 设计哈希集合 | 简单 |
| 714 | 买卖股票的最佳时机含手续费 | 中等 |
| 718 | 最长重复子数组 | 中等 |
| 721 | 账户合并 | 中等 |
| 724 | 账户合并 | 简单 |
| 738 | 单调递增的数字 | 中等 |
| 739 | 每日温度 | 中等 |
| 746 | 使用最小花费爬楼梯 | 简单 |
| 763 | 划分字母区间 | 简单 |
| 766 | 托普利茨矩阵 | 简单 |
| 767 | 重构字符串 | 中等 |
| 771 | 宝石与石头 | 简单 |
| 778 | 水位上升的泳池中游泳 | 困难 |
| 785 | 判断二分图 | 中等 |
| 803 | 打砖块 | 困难 |
| 830 | 较大分组的位置 | 简单 |
| 832 | 翻转图像 | 简单 |
| 839 | 相似字符串组 | 困难 |
| 841 | 钥匙和房间 | 中等 |
| 842 | 将数组拆分成斐波那契序列 | 中等 |
| 860 | 柠檬水找零 | 简单 |
| 861 | 翻转矩阵后的得分 | 中等 |
| 867 | 转置矩阵 | 简单 |
| 872 | 叶子相似的树 | 简单 |
| 888 | 公平的糖果棒交换 | 简单 |
| 896 | 单调数列 | 简单 |
| 922 | 按奇偶排序数组 II | 简单 |
| 941 | 有效的山脉数组 | 简单 |
| 947 | 移除最多的同行或同列石头 | 中等 |
| 959 | 由斜杠划分区域 | 中等 |
| 978 | 最长湍流子数组 | 中等 |
| 989 | 数组形式的整数加法 | 简单 |
| 992 | K 个不同整数的子数组 | 困难 |
| 1030 | 距离顺序排列矩阵单元格 | 中等 |
| 1014 | 最佳观光组合 | 中等 |
| 1018 | 整除的二进制前缀 | 简单 |
| 1025 | 除数博弈 | 中等 |
| 1028 | 从先序遍历还原二叉树 | 困难 |
| 1030 | 距离顺序排列矩阵单元格 | 简单 |
| 1046 | 最后一块石头的重量 | 简单 |
| 1047 | 删除字符串中的所有相邻重复项 | 简单 |
| 1054 | 爱生气的书店老板 | 中等 |
| 1108 | IP 地址无效化 | 简单 |
| 1114 | 按序打印 | 简单 |
| 1115 | 交替打印FooBar | 中等 |
| 1116 | 打印零与奇偶数 | 中等 |
| 1178 | 猜字谜 | 困难 |
| 1202 | 换字符串中的元素 | 中等 |
| 1203 | 项目管理 | 困难 |
| 1207 | 独一无二的出现次数 | 简单 |
| 1208 | 尽可能使字符串相等 | 中等 |
| 1232 | 缀点成线 | 简单 |
| 1269 | 停在原地的方案数 | 困难 |
| 1300 | 转变数组后最接近目标值的数组和 | 中等 |
| 1310 | 子数组异或查询 | 中等 |
| 1319 | 连通网络的操作次数 | 中等 |
| 1356 | 根据数字二进制下1的数目排序 | 简单 |
| 1365 | 有多少小于当前数字的数字 | 简单 |
| 1370 | 上升下降字符串 | 简单 |
| 1423 | 可获得的最大点数 | 中等 |
| 1489 | 转找到最小生成树里的关键边和伪关键边 | 困难 |
| 1494 | 转变数组后最接近目标值的数组和 | 困难 |
| 1579 | 保证图可完全遍历 | 困难 |
| 1584 | 连接所有点的最小费用 | 中等 |
| 1603 | 设计停车系统 | 简单 |
| 1631 | 最小体力消耗路径 | 中等 |
| 1720 | 解码异或后的数组 | 简单 |
| 1723 | 完成所有工作的最短时间 | 困难 |