记录一下 leetcode 刷题记录,使用 typescript/javascript 编写。我的 leetcode 个人首页: leetcode个人首页
| 题目 | 题解 | tag | 备注 |
|---|
| 1. 两数之和 | 题解 | | |
| 2. 两数相加 | 题解 | | |
| 3. 无重复字符的最长子串 | 题解 | 滑动窗口 | 值得一做 |
| 5. 最长回文子串 | 题解 | 动态规划, 中心拓展 | 虽然没写出效率比较好的解法,但是理解了 |
| 7. 整数反转 | 题解 | | |
| 9. 回文数 | 题解 | 双指针,字符串,反转 | |
| 15. 三数之和 | 题解 | | |
| 26. 删除有序数组中的重复项 | 题解 | 快慢指针 | fail!建议二刷! |
| 36. 有效的数独 | 题解 | 哈希表 | |
| 37. 解数独 | 题解 | 哈希表,DFS | 必做题! |
| 38. 外观数列 | 题解 | | |
| 45. 跳跃游戏 II | 题解 | 动态规划,贪心算法 | 写出了动态规划,没写出贪心算法 |
| 46. 全排列 | 题解 | 回溯 | |
| 49. 字母异位词分组 | 题解 | 哈希表 | |
| 53. 最大子序和 | 题解 | 动态规划 | ✅ |
| 55. 跳跃游戏 | 题解 | 动态规划, 贪心算法 | 写出了动态规划,没写出贪心解法 |
| 62. 不同路径 | 题解 | | |
| 64. 最小路径和 | 题解 | 动态规划 | ✅ |
| 66. 加一 | 题解 | 数组 | 5分钟内搞定 |
| 70. 爬楼梯 | 题解 | 动态规划 | ✅ |
| 80. 删除有序数组中的重复项 II | 题解 | 双指针 | ✅ |
| 86. 分隔链表 | 题解 | | |
| 96. 不同的二叉搜索树 | 题解 | 动态规划 | ✅ 自己想出来了! |
| 110. 平衡二叉树 | 题解 | 递归 | ✅ |
| 121. 买卖股票的最佳时机 | 题解 | 动态规划 | ✅ |
| 125. 验证回文串 | 题解 | | |
| 131. 分割回文串 | 题解 | 回溯, 动态规划 | ✅ |
| 134. 加油站 | 题解 | 贪心算法 | |
| 138. 复制带随机指针的链表 | 题解 | 哈希表 | |
| 142. 环形链表 II | 题解 | 快慢指针 | |
| 164. 最大间距 | 题解 | | |
| 166. 分数到小数 | 题解 | 哈希表,设计 | 需要比较细致的思考 |
| 168. Excel表列名称 | 题解 | 进制转换 | 值得一做 |
| 187. 重复的DNA序列 | 题解 | 哈希表,Rabin-Karp,掩码 | |
| 191. 位1的个数 | 题解 | 位运算 | |
| 203. 移除链表元素 | 题解 | 模拟 | ✅ |
| 205. 同构字符串 | 题解 | 哈希表 | |
| 206. 反转链表 | 题解 | 迭代 | |
| 215. 数组中的第K个最大元素 | 题解 | | |
| 221. 最大正方形 | 题解 | 动态规划 | ✅ |
| 226. 翻转二叉树 | 题解 | 递归 | ✅ |
| 230. 二叉搜索树中第K小的元素 | 题解 | 递归 | |
| 235. 二叉搜索树的最近公共祖先 | 题解 | 递归, 迭代 | ✅ |
| 242. 有效的字母异位词 | 题解 | 哈希表 | |
| 257. 二叉树的所有路径 | 题解 | 递归 | ✅ |
| 274. H 指数 | 题解 | 哈希表,排序,桶排序 | |
| 290. 单词规律 | 题解 | | |
| 299. 猜数字游戏 | 题解 | 哈希表 | |
| 303. 区域和检索 - 数组不可变 | 题解 | 前缀和 | |
| 345. 反转字符串中的元音字母 | 题解 | | |
| 347. 前 K 个高频元素 | 题解 | 哈希表,桶排序,堆排序 | |
| 355. 设计推特 | 题解 | 面向对象编程,哈希表 | |
| 338. 比特位计数 | 题解 | 动态规划 | ✅ |
| 376. 摆动序列 | 题解 | 贪心算法 | 自己思考出来了最优的解法 |
| 389. 找不同 | 题解 | | |
| 392. 判断子序列 | 题解 | 双指针, 动态规划 | ✅ 动态规划没想出来 |
| 402. 移掉K位数字 | 题解 | 栈 | |
| 404. 左叶子之和 | 题解 | 递归, 迭代 | ✅ |
| 405. 数字转换为十六进制数 | 题解 | | |
| 406. 根据身高重建队列 | 题解 | 排序 | |
| 409. 最长回文串 | 题解 | | |
| 435. 无重叠区间 | 题解 | 排序, 贪心算法, 区间重叠 | 5分钟内就写出来了,可以的 |
| 438. 找到字符串中所有字母异位词 | 题解 | 哈希表 | |
| 447. 回旋镖的数量 | 题解 | 哈希表 | |
| 451. 根据字符出现频率排序 | 题解 | 哈希表,桶排序 | |
| 452. 用最少数量的箭引爆气球 | 题解 | 排序, 区间重叠 | |
| 454. 四数相加 II | 题解 | 哈希表 | |
| 455. 分发饼干 | 题解 | 排序 | |
| 494. 目标和 | 题解 | 回溯,HashMap | |
| 501. 二叉搜索树中的众数 | 题解 | 队列, 哈希表 | ✅ |
| 508. 出现次数最多的子树元素和 | 题解 | 哈希表,递归,DFS | |
| 525. 连续数组 | 题解 | 哈希表 | |
| 530. 二叉搜索树的最小绝对差 | 题解 | 递归 | ✅ |
| 535. TinyURL 的加密与解密 | 题解 | 哈希表 | |
| 543. 二叉树的直径 | 题解 | 递归,分组讨论 | ✅ |
| 554. 砖墙 | 题解 | 哈希表 | |
| 557. 反转字符串中的单词 | 题解 | 字符串,原地修改 | |
| 560. 和为K的子数组 | 题解 | | ✅前缀和+哈希表运用不够熟练,待二刷! |
| 563. 二叉树的坡度 | 题解 | 递归, 后序遍历 | ✅ 待二刷 |
| 572. 另一棵树的子树 | 题解 | 递归 | ✅ 待二刷 |
| 589. N叉树的前序遍历 | 题解 | | |
| 599. 两个列表的最小索引总和 | 题解 | 哈希表 | |
| 606. 根据二叉树创建字符串 | 题解 | 递归算法, 前序遍历 | ✅ |
| 609. 在系统中查找重复文件 | 题解 | 哈希表 | |
| 617. 合并二叉树 | 题解 | 递归 | ✅ |
| 637. 二叉树的层平均值 | 题解 | 层次遍历,队列 | ✅ |
| 645. 错误的集合 | 题解 | | |
| 648. 单词替换 | 题解 | 哈希表,字典树 | |
| 649. Dota2 参议院 | 题解 | 循环队列, 贪心算法 | 没想出来,题解很巧妙 |
| 653. 两数之和 IV - 输入 BST | 题解 | 递归,哈希表,迭代器 | ✅ |
| 659. 分割数组为连续子序列 | 题解 | 哈希表 | 没想出来,有点难理解 |
| 665. 非递减数列 | 题解 | 放大还是缩小呢 | 一下子难以想到位 |
| 671. 二叉树中第二小的节点 | 题解 | 深度优先遍历 | ✅ |
| 676. 实现一个魔法字典 | 题解 | 哈希表 | |
| 690. 员工的重要性 | 题解 | 哈希表, 递归 | |
| 692. 前K个高频单词 | 题解 | 哈希表,堆排序 | |
| 700. 二叉搜索树中的搜索 | 题解 | 递归,迭代 | ✅ |
| 703. 数据流中的第 K 大元素 | 题解 | ✅ | 插入排序, 堆排序(待完善) |
| 714. 买卖股票的最佳时机含手续费 | 题解 | 动态规划 | 二刷,终于自己写出来了,✅ |
| 720. 词典中最长的单词 | 题解 | 哈希表,排序,前缀树 | |
| 724. 寻找数组的中心索引 | 题解 | | |
| 738. 单调递增的数字 | 题解 | 贪心算法 | 没想出来,但是挺有意思的想法 |
| 746. 使用最小花费爬楼梯 | 题解 | 动态规划 | ✅ 题目的意思模糊不清,差评! |
| 748. 最短补全词 | 题解 | | |
| 763. 划分字母区间 | 题解 | | |
| 767. 重构字符串 | 题解 | 哈希表, 排序 | |
| 781. 森林中的兔子 | 题解 | 哈希表 | |
| 783. 二叉搜索树节点最小距离 | 题解 | 递归 | ✅ |
| 842. 将数组拆分成斐波那契序列 | 题解 | 回溯 | 没想出来,需要再次练习 |
| 846. 一手顺子 | 题解 | 哈希表, 排序 | |
| 861. 翻转矩阵后的得分 | 题解 | 贪心算法 | |
| 870. 优势洗牌 | 题解 | 排序, 哈希表 | 自己写出来了 |
| 872. 叶子相似的树 | 题解 | 递归 | ✅ |
| 874. 模拟行走机器人 | 题解 | 设计 | |
| 877. 石子游戏 | 题解 | 双指针, 数学, 动态规划 | ✅ 动态规划没理解. |
| 881. 救生艇 | 题解 | 双指针, 排序 | 做出来了,没仔细读题,多花了半个小时 |
| 884. 两句话中的不常见单词 | 题解 | 哈希表 | |
| 888. 公平的糖果棒交换 | 题解 | 哈希表 | |
| 893. 特殊等价字符串组 | 题解 | | |
| 897. 递增顺序搜索树 | 题解 | 递归,迭代 | ✅迭代待完成 |
| 907. 子数组的最小值之和 | 题解 | 栈 | 至今无法理解 |
| 908. 最小差值 I | 题解 | 数学 | 自己写出来了 |
| 910. 最小差值 II | 题解 | 贪心算法 | 没想出来,解法很巧妙,数形结合更好理解 |
| 925. 长键输入 | 题解 | | |
| 930. 和相同的二元子数组 | 题解 | 哈希表,前缀和 | 连续子数组之和,非常有价值! |
| 938. 二叉搜索树的范围和 | 题解 | 中序遍历 | ✅ |
| 939. 最小面积矩形 | 题解 | 哈希表 | 没想出来的,但觉得问题不大 |
| 944. 删列造序 | 题解 | | |
| 948. 令牌放置 | 题解 | 排序, 双指针 | 自己写出来了,可 |
| 953. 验证外星语词典 | 题解 | | |
| 954. 二倍数对数组 | 题解 | 哈希表, 排序 | |
| 957. N 天后的牢房 | 题解 | 哈希表 | |
| 965. 单值二叉树 | 题解 | 递归, 哈希 | ✅ |
| 966. 元音拼写检查器 | 题解 | | |
| 970. 强整数 | 题解 | 数学,对数运算 | |
| 981. 基于时间的键值存储 | 题解 | 哈希表,二分查找 | 方法已经想出来了,但是不够自信 |
| 984. 不含 AAA 或 BBB 的字符串 | 题解 | 贪心算法 | 自己写出来,我觉得比官方题解好理解 |
| 986. 区间列表的交集 | 题解 | | |
| 989. 数组形式的整数加法 | 题解 | | |
| 991. 坏了的计算器 | 题解 | 贪心算法 | 没想出来,但理解了 |
| 993. 二叉树的堂兄弟节点 | 题解 | 广度优先遍历 | ✅ |
| 1022. 从根到叶的二进制数之和 | 题解 | 深度优先遍历 | ✅ |
| 1005. K 次取反后最大化的数组和 | 题解 | 排序 | |
| 1007. 行相等的最少多米诺旋转 | 题解 | | |
| 1019. 链表中的下一个更大节点 | 题解 | 栈 | |
| 1021. 删除最外层的括号 | 题解 | 双指针,栈 | |
| 1025. 除数博弈 | 题解 | 动态规划 | ✅ |
| 1029. 两地调度 | 题解 | | |
| 1030. 距离顺序排列矩阵单元格 | 题解 | | |
| 1046. 最后一块石头的重量 | 题解 | 排序 | |
| 1048. 最长字符串链 | 题解 | 哈希表,动态规划 | |
| 1053. 交换一次的先前排列 | 题解 | 贪心算法 | 做出来了,nice |
| 1072. 按列翻转得到最大值等行数 | 题解 | 哈希表 | 没想出来的 |
| 1081. 不同字符的最小子序列 | 题解 | | |
| 1090. 受标签影响的最大值 | 题解 | 排序,哈希表 | 话说用堆排序好像更优,但是老夫懒 |
| 1094. 拼车 | 题解 | 差分统计 | |
| 1111. 有效括号的嵌套深度 | 题解 | 双指针 | |
| 1124. 表现良好的最长时间段 | 题解 | 前缀和, 哈希表,单调栈 | 只想出了一个低效率的解法 |
| 1128. 等价多米诺骨牌对的数量 | 题解 | 哈希表 | |
| 1189. “气球” 的最大数量 | 题解 | | |
| 1218. 最长定差子序列 | 题解 | 哈希表,动态规划 | |
| 1247. 交换字符使得字符串相同 | 题解 | 分组讨论 | 没想出来,应该使用数学的分组讨论 |
| 1253. 重构 2 行二进制矩阵 | 题解 | 贪心算法 | 自己写出来了 |
| 1261. 在受污染的二叉树中查找元素 | 题解 | 哈希表,数学 | |
| 1276. 不浪费原料的汉堡制作方案 | 题解 | 数学 | |
| 1277. 统计全为 1 的正方形子矩阵 | 题解 | 动态规划 | ✅ |
| 1282. 用户分组 | 题解 | 哈希表 | |
| 1288. 删除被覆盖区间 | 题解 | 排序, 栈 | |
| 1296. 划分数组为连续数字的集合 | 题解 | 哈希表, 排序 | |
| 1309. 解码字母到整数映射 | 题解 | | |
| 1311. 获取你好友已观看的视频 | 题解 | | |
| 1314. 矩阵区域和 | 题解 | 二维数组前缀和, 动态规划 | ✅ |
| 1332. 删除回文子序列 | 题解 | 脑筋急转弯 | ✅ 这个怎么说呢? |
| 1356. 根据数字二进制下 1 的数目排序 | 题解 | 哈希表,位运算 | |
| 1370. 上升下降字符串 | 题解 | 排序,哈希,字符串 | |
| 1386. 安排电影院座位 | 题解 | 哈希表, 位运算 | 没想出来要使用位运算 |
| 1395. 统计作战单位数 | 题解 | | |
| 1400. 构造 K 个回文字符串 | 题解 | 哈希表 | |
| 1403. 非递增顺序的最小子序列 | 题解 | 排序 | |
| 1405. 最长快乐字符串 | 题解 | 贪心算法 | 思路对了,没写出来,已经理解了 |
| 1418. 点菜展示表 | 题解 | 哈希表 | |
| 1487. 保证文件名唯一 | 题解 | 哈希表 | |
| 1536. 排布二进制网格的最少交换次数 | 题解 | 哈希表, 冒泡排序 | 自己写出来了,成就感 + 1 |
| 1539. 第 k 个缺失的正整数 | 题解 | 哈希表,二分法 | |
| 1540. K 次操作转变字符串 | 题解 | 哈希表 | 自己写出来了,冲! |
| 1558. 得到目标数组的最少函数调用次数 | 题解 | 归纳总结 | 方向有了,卡在具体实现 |
| 1567. 乘积为正数的最长子数组长度 | 题解 | 滑动窗口 | 花了一个小时写出来,时间花的有点多了 |
| 1576. 替换所有的问号 | 题解 | ✅ | 花了40分钟才想出解法,应该老老实实模拟,别想太多. |
| 1577. 数的平方等于两数乘积的方法数 | 题解 | 哈希表 | |
| 1578. 避免重复字母的最小删除成本 | 题解 | 滑动窗口 | |
| 1588. 所有奇数长度子数组的和 | 题解 | 前缀和,数学,动态规划 | |
| 1589. 所有排列中的最大和 | 题解 | 差分数组, 排序, 哈希表 | 自己写出来了! |
| 1594. 矩阵的最大非负积 | 题解 | 动态规划 | 自己写出来了,还挺优雅的,强! |
| 1603. 设计停车系统 | 题解 | 数组 | |
| 1605. 给定行和列的和求可行矩阵 | 题解 | | 没想出来,但觉得不重要 |
| 1614. 括号的最大嵌套深度 | 题解 | 前缀和,数学,动态规划 | |
| 1616. 分割两个字符串得到回文串 | 题解 | 双指针 | ✅ |
| 1619. 删除某些元素后的数组均值 | 题解 | | |
| 1620. 网络信号最好的坐标 | 题解 | 哈希表 | 暴力破解了 |
| 1636. 按照频率将数组升序排序 | 题解 | | |
| 1640. 能否连接形成数组 | 题解 | | |
| 1641. 统计字典序元音字符串的数目 | 题解 | 动态规划 | ✅ |
| 1647. 字符频次唯一的最小删除次数 | 题解 | 排序 | |
| 1652. 拆炸弹 | 题解 | | |
| 1653. 使字符串平衡的最少删除次数 | 题解 | 动态规划 | 没想出来,一定要再次练习 |
| 1656. 设计有序流 | 题解 | | |
| 1657. 确定两个字符串是否接近 | 题解 | 哈希表, 排序 | |
| 1662. 检查两个字符串数组是否相等 | 题解 | | |
| 1664. 生成平衡数组的方案数 | 题解 | 前缀和 | |
| 1672. 最富有客户的资产总量 | 题解 | | |
| 1673. 找出最具竞争力的子序列 | 题解 | 栈 | |
| 1674. 使数组互补的最少操作次数 | 题解 | 差分数组 | 这道题目只会暴力破解,第一次遇到差分数组 |
| 1678. 设计 Goal 解析器 | 题解 | | |
| 1679. K 和数对的最大数目 | 题解 | 哈希表 | |
| 1685. 有序数组中差绝对值之和 | 题解 | 数学, 前缀和 | |
| 1688. 比赛中的配对次数 | 题解 | | |
| 1689. 十-二进制数的最少数目 | 题解 | 脑筋急转弯 | 没想出来,惜败 |
| 1700. 无法吃午餐的学生数量 | 题解 | 队列,栈 | |
| 1702. 修改后的最大二进制字符串 | 题解 | 贪心算法, 脑筋急转弯 | 没想出来,感觉是脑筋急转弯,但是理解了 |
| 1704. 判断字符串的两半是否相似 | 题解 | | |
| 1705. 吃苹果的最大数目 | 题解 | 排序,优先队列 | 没想到要用队列 |
| 1710. 卡车上的最大单元数 | 题解 | 排序 | |
| 1711. 大餐计数 | 题解 | 哈希表 | |
| 1716. 计算力扣银行的钱 | 题解 | 排序 | |
| 1717. 删除子字符串的最大得分 | 题解 | 贪心算法 | 想了好几个小时,没想到去统计字符串 |
| 1720. 解码异或后的数组 | 题解 | 位运算 | |
| 1725. 可以形成最大正方形的矩形数目 | 题解 | | |
| 1726. 同积元组 | 题解 | 哈希表,等差数列求和 | |
| 1727. 重新排列后的最大子矩阵 | 题解 | 排序 | 没想出来,但是挺有意思的 |
| 1733. 需要教语言的最少人数 | 题解 | 哈希表, 贪心算法 | 困住几天,因为没能充分理解题意 |
| 1743. 从相邻元素对还原数组 | 题解 | 哈希表 | |
| 1748. 唯一元素的和 | 题解 | 哈希表 | |
| 1749. 任意子数组和的绝对值的最大值 | 题解 | 贪心算法 | |
| 1754. 构造字典序最大的合并字符串 | 题解 | 贪心算法 | 思考了很久都没想出来 |
| 1758. 生成交替二进制字符串的最少操作数 | 题解 | 动态规划 | |
| 1759. 统计同构子字符串的数目 | 题解 | 贪心算法, 等差数列求和 | 给出了一个很简洁的解法, nice |
| 1769. 移动所有球到每个盒子所需的最小操作数 | 题解 | | |
| 1774. 最接近目标价格的甜点成本 | 题解 | 回溯, 动态规划 | |
| 1775. 通过最少操作次数使数组的和相等 | 题解 | 贪心算法 | |
| 1784. 检查二进制字符串字段 | 题解 | | |
| 1785. 构成特定和需要添加的最少元素 | 题解 | 数学 | 花了10分钟才搞定,想明白就很简单 |
| 1802. 有界数组中指定下标处的最大值 | 题解 | 二分查找, 分组讨论, 等差数列 | |
| 1806. 还原排列的最少操作步数 | 题解 | 模拟 | |
| 2236. 判断根结点是否等于子结点之和 | 题解 | 直接计算 | ✅ |
| 2586. 统计范围内的元音字符串数 | 题解 | 常规解法 | ✅ |
| 2609. 最长平衡子字符串 | 题解 | ✅ | |
| LCP 01. 猜数字 | 题解 | | |
| LCP 44. 开幕式焰火 | 题解 | 递归 + 哈希 | ✅ |
| 面试题 01.04. 回文排列 | 题解 | 哈希表 | |
| 面试题 04.02. 最小高度树 | 题解 | 递归,二叉树 | ✅ |
| 面试题 04.04. 检查平衡性 | 题解 | 递归(自底向上) | ✅ 官方的题解很厉害,自定向上的递归,学到了! |
| 面试题 05.07. 配对交换 | 题解 | 字符串,位运算 | |
| 面试题 08.01. 三步问题 | 题解 | 动态规划 | ✅ |
| 面试题 10.02. 变位词组 | 题解 | 哈希表 | |
| 面试题 16.14. 最佳直线 | 题解 | 穷举,数学性质 | |
| 面试题 16.17. 连续数列 | 题解 | 动态规划 | ✅ |
| 面试题 17.11. 单词距离 | 题解 | | |
| 面试题 17.12. BiNode | 题解 | 中序遍历 | ✅ |
| 面试题 17.16. 按摩师 | 题解 | 动态规划 | ✅ |
| 剑指 Offer 27. 二叉树的镜像 | 题解 | 递归, 树 | ✅ |
| 剑指 Offer 28. 对称的二叉树 | 题解 | 递归 | ✅ |
| 剑指 Offer 32 - II. 从上到下打印二叉树 II | 题解 | 队列 | ✅ |
| 剑指 Offer 42. 连续子数组的最大和 | 题解 | 动态规划 | ✅ |
| 剑指 Offer 47. 礼物的最大价值 | 题解 | 动态规划 | ✅ |
| 剑指 Offer 50. 第一个只出现一次的字符 | 题解 | | |
| 剑指 Offer II 052. 展平二叉搜索树 | 题解 | 递归 | ✅ |
| 剑指 Offer 54. 二叉搜索树的第k大节点 | 题解 | 递归 | ✅ |
| 剑指 Offer 55 - I. 二叉树的深度 | 题解 | 递归 | ✅ |
| 剑指 Offer 55 - II. 平衡二叉树 | 题解 | 递归(自底向上) | ✅ |
| 剑指 Offer II 056. 二叉搜索树中两个节点之和 | 题解 | 递归 + 哈希, 迭代器 | ✅ |
| 剑指 Offer 57 - II. 和为s的连续正数序列 | 题解 | 滑动窗口,数学 | |
| 剑指 Offer II 059. 数据流的第 K 大数值 | 题解 | ✅ | 插入排序, 堆排序(忘得差不多了) |
| 剑指 Offer 64. 求1+2+…+n | 题解 | 递归 | |
| 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 | 题解 | 递归, 迭代 | ✅ |
| 剑指 Offer 68 - II. 二叉树的最近公共祖先 | 题解 | 递归 | 不太行啊兄弟们 |
| 各大排序算法 | 题解 | 递归 | |
tips: 题目描述皆来自于 leetcode-cn.com