LeetCode解题汇总目录

a 夏天 提交于 2019-12-02 17:37:52

此篇为学习完《数据结构与算法之美》后,在LeetCode刷题的汇总目录,方便大家查找(Ctrl+Find),一起刷题,一起PK交流!Updated on 2019.12.2

刷题可以按照不同的专题进行,便于加强某个知识点的理解。

我的 LeetCode 主页

我的 GitHub 主页

已解决 519/1185 - 简单 281 中等 208 困难 30

  • 2019.7.24 - 2019.11.9,108天做了400道题
  • 2019.11.9 - 2019.11.24, AC+100道,4个月共计500道题
参赛记录
LeetCode 2019 力扣杯全国秋季编程大赛

已解题目,部分太简单的没有列出
LeetCode 1. 两数之和(哈希)
LeetCode 2. 两数相加(单链表反转)
LeetCode 3. 无重复字符的最长子串(滑动窗口+哈希)
LeetCode 4. 寻找两个有序数组的中位数(二分查找,难)
LeetCode 7. 整数反转
LeetCode 8. 字符串转换整数 (atoi)
LeetCode 9. 回文数
LeetCode 11. 盛最多水的容器(双指针)
LeetCode 14. 最长公共前缀
LeetCode 15. 三数之和
LeetCode 16. 最接近的三数之和(固定左端+滑动窗口)
LeetCode 17. 电话号码的字母组合(回溯)
LeetCode 19. 删除链表的倒数第N个节点(双指针)
LeetCode 20. 有效的括号(栈)
LeetCode 21. 合并两个有序链表(单链表)
LeetCode 22. 括号生成(回溯)
LeetCode 23. 合并K个排序链表(优先队列)
LeetCode 24. 两两交换链表中的节点(递归+循环)
LeetCode 26. 删除排序数组中的重复项
LeetCode 27. 移除元素
LeetCode 29. 两数相除(位运算)
LeetCode 32. 最长有效括号(栈&DP)
LeetCode 33. 搜索旋转排序数组(二分查找)
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
LeetCode 35. 搜索插入位置(二分查找)
LeetCode 36. 有效的数独(哈希)
LeetCode 39. 组合总和(回溯)
LeetCode 40. 组合总和 II(排列组合 回溯)
LeetCode 41. 缺失的第一个正数
LeetCode 42. 接雨水(双指针、单调栈)
LeetCode 43. 字符串相乘(大数乘法)
LeetCode 45. 跳跃游戏 II(贪心, 难)
LeetCode 46. 全排列(回溯)
LeetCode 47. 全排列 II(回溯+搜索剪枝)
LeetCode 49. 字母异位词分组(哈希)
LeetCode 50. Pow(x, n)(二分查找)
LeetCode 53. 最大子序和(动态规划)
LeetCode 55. 跳跃游戏(贪心)
LeetCode 56. 合并区间(优先队列)
LeetCode 59. 螺旋矩阵 II && LeetCode 54. 螺旋矩阵
LeetCode 61. 旋转链表
LeetCode 62. 不同路径(DP)
LeetCode 63. 不同路径 II(DP)
LeetCode 64. 最小路径和(DP)
LeetCode 67. 二进制求和
LeetCode 69. x 的平方根(二分查找)
LeetCode 70. 爬楼梯(动态规划)
LeetCode 73. 矩阵置零
LeetCode 74. 搜索二维矩阵(二分查找)
LeetCode 75. 颜色分类(双指针)
LeetCode 76. 最小覆盖子串(滑动窗口)
LeetCode 77. 组合(回溯)
LeetCode 78. 子集(回溯)
LeetCode 79. 单词搜索(回溯DFS)
LeetCode 80. 删除排序数组中的重复项 II
LeetCode 81. 搜索旋转排序数组 II(二分查找)
LeetCode 82. 删除排序链表中的重复元素 II(链表)
LeetCode 83. 删除排序链表中的重复元素(链表)
LeetCode 86. 分隔链表
LeetCode 88. 合并两个有序数组
LeetCode 89. 格雷编码
LeetCode 90. 子集 II(回溯+剪枝)
LeetCode 92. 反转链表 II(双指针)
LeetCode 94. 二叉树的中序遍历(中序遍历)
LeetCode 96. 不同的二叉搜索树(DP)
LeetCode 98. 验证二叉搜索树(中序遍历)
LeetCode 99. 恢复二叉搜索树(中序遍历)
LeetCode 100. 相同的树(二叉树遍历)
LeetCode 101. 对称二叉树(递归&循环)
LeetCode 102. 二叉树的层次遍历
LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)
LeetCode 104. 二叉树的最大深度
LeetCode 105. 已知前序&中序 求二叉树
LeetCode 106. 已知中序&后序 求二叉树
LeetCode 108. 将有序数组转换为二叉搜索树
LeetCode 109. 有序链表转换二叉搜索树(快慢指针+递归)
LeetCode 110. 平衡二叉树(二叉树高度)
LeetCode 111. 二叉树的最小深度
LeetCode 112. 路径总和
LeetCode 113. 路径总和 II(回溯)
LeetCode 114. 二叉树展开为链表(递归)
LeetCode 116. 填充每个节点的下一个右侧节点指针(递归&循环)
LeetCode 117. 填充每个节点的下一个右侧节点指针 II(递归&循环)
LeetCode 118. 杨辉三角
LeetCode 119. 杨辉三角 II
LeetCode 120. 三角形最小路径和
LeetCode 121. 买卖股票的最佳时机
LeetCode 122. 买卖股票的最佳时机 II
LeetCode 124. 二叉树中的最大路径和(DFS)
LeetCode 126. 单词接龙 II(图的BFS)
LeetCode 127. 单词接龙(图的BFS/双向BFS)
LeetCode 128. 最长连续序列(哈希set)
LeetCode 129. 求根到叶子节点数字之和(DFS)
LeetCode 130. 被围绕的区域(图的BFS/DFS)
LeetCode 131. 分割回文串(回溯)
LeetCode 133. 克隆图(图的BFS/DFS)
LeetCode 134. 加油站(贪心)
LeetCode 136. 只出现一次的数字(异或^)
LeetCode 137. 只出现一次的数字 II(位运算)
LeetCode 138. 复制带随机指针的链表(哈希 / 深拷贝)
LeetCode 139. 单词拆分(DP)
LeetCode 140. 单词拆分 II(DP+回溯)
LeetCode 141. 环形链表
LeetCode 142. 环形链表 II(链表环的检测)
LeetCode 143. 重排链表(链表反转+快慢指针)
LeetCode 144. 二叉树的前序遍历(前序遍历)
LeetCode 145. 二叉树的后序遍历(后序遍历&总结)
LeetCode 146. LRU缓存机制(哈希链表)
LeetCode 147. 对链表进行插入排序(链表)
LeetCode 148. 排序链表(归并排序)
LeetCode 149. 直线上最多的点数
LeetCode 150. 逆波兰表达式求值(栈)
LeetCode 151. 翻转字符串里的单词(栈)
LeetCode 152. 乘积最大子序列(DP)
LeetCode 153. 寻找旋转排序数组中的最小值(二分查找)
LeetCode 154. 寻找旋转排序数组中的最小值 II(二分查找)
LeetCode 155. 最小栈
LeetCode 160. 相交链表
LeetCode 162. 寻找峰值(二分查找)
LeetCode 166. 分数到小数(小数除法)
LeetCode 169. 求众数
LeetCode 171. Excel表列序号(26进制转10进制)
LeetCode 173. 二叉搜索树迭代器(中序遍历)
LeetCode 179. 最大数(自定义谓词函数(Lambda表达式)排序)
LeetCode 189. 旋转数组(环形替换)
LeetCode 198. 打家劫舍(DP)
LeetCode 199. 二叉树的右视图(DFS & 按层queue)
LeetCode 200. 岛屿数量(图的遍历)
LeetCode 202. 快乐数(快慢指针)
LeetCode 204. 计数质数(质数的倍数不是质数)
LeetCode 206. 反转链表
LeetCode 208. 实现 Trie (前缀树)
LeetCode 209. 长度最小的子数组(滑动窗口)
LeetCode 211. 添加与搜索单词 - 数据结构设计(Trie树)
LeetCode 212. 单词搜索 II(Trie树+DFS)
LeetCode 213. 打家劫舍 II(DP)
LeetCode 215. 数组中的第K个最大元素(快速排序)
LeetCode 216. 组合总和 III(排列组合 回溯)
LeetCode 217. 存在重复元素(哈希)
LeetCode 219. 存在重复元素 II(哈希)
LeetCode 220. 存在重复元素 III(lower_bound)
LeetCode 221. 最大正方形(DP)
LeetCode 222. 完全二叉树的节点个数(二分查找)
LeetCode 225. 用队列实现栈
LeetCode 226. 翻转二叉树(DFS & BFS)
LeetCode 227. 基本计算器 II(栈)
LeetCode 230. 二叉搜索树中第K小的元素(中序遍历)
LeetCode 231. 2的幂 && LeetCode 338. 比特位计数(2进制1的个数)
LeetCode 232. 用栈实现队列(双栈法->队列)
LeetCode 234. 回文链表(快慢指针+链表反转)
LeetCode 235. 二叉搜索树的最近公共祖先
LeetCode 236. 二叉树的最近公共祖先
LeetCode 237. 删除链表中的节点
LeetCode 238. 除自身以外数组的乘积
LeetCode 239. 滑动窗口最大值(双端队列)
LeetCode 240. 搜索二维矩阵 II(二分查找 && 分治)
LeetCode 257. 二叉树的所有路径(DFS)
LeetCode 260. 只出现一次的数字 III(位运算)
LeetCode 268. 缺失数字
LeetCode 273. 整数转换英文表示
LeetCode 279. 完全平方数(DP)
LeetCode 283. 移动零
LeetCode 287. 寻找重复数(BitMap)
LeetCode 289. 生命游戏(位运算)
LeetCode 290. 单词规律(哈希)
LeetCode 292. Nim 游戏
LeetCode 295. 数据流的中位数(大小堆)
LeetCode 297. 二叉树的序列化与反序列化(前序遍历&层序遍历)
LeetCode 300. 最长上升子序列
LeetCode 304. 二维区域和检索 - 矩阵不可变(DP)
LeetCode 310. 最小高度树(图 聪明的BFS,从外向内包围)
LeetCode 312. 戳气球(DP,难)
LeetCode 315. 计算右侧小于当前元素的个数(二叉查找树&二分查找&归并排序逆序数总结)
LeetCode 318. 最大单词长度乘积(位运算)
LeetCode 322. 零钱兑换(DP)
LeetCode 324. 摆动排序 II
LeetCode 328. 奇偶链表(双指针)
LeetCode 334. 递增的三元子序列
LeetCode 337. 打家劫舍 III(记忆化+递归)
LeetCode 341. 扁平化嵌套列表迭代器(双栈)
LeetCode 342. 4的幂(位运算)
LeetCode 343. 整数拆分(DP)
LeetCode 344. 反转字符串
LeetCode 347. 前 K 个高频元素(哈希/优先队列)
LeetCode 349. 两个数组的交集(哈希)
LeetCode 350. 两个数组的交集 II(哈希)
LeetCode 365. 水壶问题(最大公约数)
LeetCode 367. 有效的完全平方数(二分查找)
LeetCode 377. 组合总和 Ⅳ(DP)
LeetCode 378. 有序矩阵中第K小的元素(二分查找)
LeetCode 380. 常数时间插入、删除和获取随机元素(哈希+vector)
LeetCode 382. 链表随机节点(概率)
LeetCode 384. 打乱数组(rand)
LeetCode 386. 字典序排数(DFS&循环)
LeetCode 389. 找不同(位运算)
LeetCode 392. 判断子序列(双指针&二分查找)
LeetCode 394. 字符串解码(栈)
LeetCode 401. 二进制手表
LeetCode 403. 青蛙过河(DP)
LeetCode 404. 左叶子之和(递归)
LeetCode 413. 等差数列划分(DP)
LeetCode 414. 第三大的数
LeetCode 415. 字符串相加(大数加法)
LeetCode 421. 数组中两个数的最大异或值(Trie树)
LeetCode 427. 建立四叉树(递归)
LeetCode 429. N叉树的层序遍历(queue)
LeetCode 430. 扁平化多级双向链表(DFS)
LeetCode 437. 路径总和 III(双重递归)
LeetCode 442. 数组中重复的数据
LeetCode 443. 压缩字符串(双指针)
LeetCode 448. 找到所有数组中消失的数字
[LeetCode 450. 删除二叉搜索树中的节点]
LeetCode 451. 根据字符出现频率排序(map+优先队列)
LeetCode 453. 最小移动次数使数组元素相等(数学)
LeetCode 454. 四数相加 II(哈希)
LeetCode 455. 分发饼干(贪心)
LeetCode 459. 重复的子字符串(数学)
LeetCode 461. 汉明距离(异或^ 与&)
LeetCode 463. 岛屿的周长
LeetCode 475. 供暖器(双指针&二分查找)
LeetCode 476. 数字的补数(移位 异或^)
LeetCode 478. 在圆内随机生成点(概率)
LeetCode 482. 密钥格式化
LeetCode 485. 最大连续1的个数
LeetCode 493. 翻转对(归并排序)
LeetCode 494. 目标和(DFS+DP)
LeetCode 496. 下一个更大元素 I(哈希)
LeetCode 498. 对角线遍历
LeetCode 500. 键盘行
LeetCode 501. 二叉搜索树中的众数(中序遍历)
LeetCode 503. 下一个更大元素 II(栈)
LeetCode 504. 七进制数(进制转换)
LeetCode 513. 找树左下角的值(按层遍历 queue)
LeetCode 515. 在每个树行中找最大值(层序遍历)
LeetCode 522. 最长特殊序列 II
LeetCode 523. 连续的子数组和(求余 哈希)
LeetCode 530. 二叉搜索树的最小绝对差(中序遍历)
LeetCode 535. TinyURL 的加密与解密(哈希)
LeetCode 537. 复数乘法
LeetCode 538. 把二叉搜索树转换为累加树(逆中序 根右左)
LeetCode 541. 反转字符串 II
LeetCode 542. 01 矩阵(BFS && DP)
LeetCode 543. 二叉树的直径(DFS)
LeetCode 547. 朋友圈(图的遍历BFS & DFS)
LeetCode 557. 反转字符串中的单词 III(栈)
LeetCode 558. 四叉树交集(递归)
LeetCode 559. N叉树的最大深度
LeetCode 561. 数组拆分 I
LeetCode 563. 二叉树的坡度(DFS)
LeetCode 572. 另一个树的子树(二叉树迭代器)
LeetCode 575. 分糖果(set集合去重)
LeetCode 581. 最短无序连续子数组(排序&单调栈)
LeetCode 589. N叉树的前序遍历(前序遍历)
LeetCode 590. N叉树的后序遍历(后序遍历)
LeetCode 594. 最长和谐子序列(map)
LeetCode 605. 种花问题
LeetCode 606. 根据二叉树创建字符串(递归)
LeetCode 617. 合并二叉树
LeetCode 621. 任务调度器(贪心)
LeetCode 628. 三个数的最大乘积
LeetCode 629. K个逆序对数组(DP)
LeetCode 637. 二叉树的层平均值(层次遍历queue)
LeetCode 641. 设计循环双端队列
LeetCode 645. 错误的集合
LeetCode 646. 最长数对链(区间 贪心)
LeetCode 648. 单词替换(Trie树)
LeetCode 652. 寻找重复的子树(DFS)
LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器&双指针)
LeetCode 654. 最大二叉树(递归)
LeetCode 655. 输出二叉树(二叉树高度&二叉树遍历)
LeetCode 657. 机器人能否返回原点
LeetCode 658. 找到 K 个最接近的元素(二分查找)
LeetCode 665. 非递减数列(双指针)
LeetCode 669. 修剪二叉搜索树
LeetCode 671. 二叉树中第二小的节点
LeetCode 674. 最长连续递增序列
LeetCode677. 键值映射(Trie树)
LeetCode 686. 重复叠加字符串匹配
LeetCode 687. 最长同值路径(二叉树,递归)
LeetCode 690. 员工的重要性(图的DFS&BFS)
LeetCode 693. 交替位二进制数(位运算)
LeetCode 695. 岛屿的最大面积(图的BFS/DFS)
LeetCode 696. 计数二进制子串
LeetCode 700. 二叉搜索树中的搜索
LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)
LeetCode 704. 二分查找
LeetCode 707. 设计链表(List)
LeetCode 709. 转换成小写字母
LeetCode 720. 词典中最长的单词(Trie树)
LeetCode 728. 自除数
LeetCode 733. 图像渲染(DFS/BFS)
LeetCode 739. 每日温度(单调栈)
LeetCode 744. 寻找比目标字母大的最小字母(二分查找)
LeetCode 746. 使用最小花费爬楼梯(DP)
LeetCode 752. 打开转盘锁(图的BFS最短路径)
LeetCode 754. 到达终点数字(数学推理)
LeetCode 762. 二进制表示中质数个计算置位
LeetCode 763. 划分字母区间
LeetCode 765. 情侣牵手(贪心)
LeetCode 771. 宝石与石头(哈希)
LeetCode 783. 二叉搜索树结点最小距离(中序遍历)
LeetCode 784. 字母大小写全排列(位运算&回溯)
LeetCode 791. 自定义字符串排序(map)
LeetCode 797. 所有可能的路径(DFS)
LeetCode 804. 唯一摩尔斯密码词(哈希+set)
LeetCode 807. 保持城市天际线
LeetCode 814. 二叉树剪枝(递归)
LeetCode 821. 字符的最短距离
LeetCode 832. 翻转图像(异或^)
LeetCode 840. 矩阵中的幻方(数学)
LeetCode 841. 钥匙和房间(DFS/BFS)
LeetCode 849. 到最近的人的最大距离
LeetCode 852. 山脉数组的峰顶索引(二分查找)
LeetCode 860. 柠檬水找零(贪心)
LeetCode 861. 翻转矩阵后的得分(贪心)
LeetCode 868. 二进制间距(位运算)
LeetCode 869. 重新排序得到 2 的幂(排序 & 全排列)
LeetCode 874. 模拟行走机器人(set)
LeetCode 876. 链表的中间结点(快慢指针)
LeetCode 887. 鸡蛋掉落(DP,难)
LeetCode 888. 公平的糖果交换(哈希set)
LeetCode 889. 已知前序&后序 求二叉树(不唯一)
LeetCode 890. 查找和替换模式(哈希表)
LeetCode 892. 三维形体的表面积(数学)
LeetCode 896. 单调数列
LeetCode 897. 递增顺序查找树(中序遍历)
LeetCode 905. 按奇偶排序数组
LeetCode 908. 最小差值 I
LeetCode 914. 卡牌分组(最大公约数)
LeetCode 919. 完全二叉树插入器(层序遍历&队列)
LeetCode 922. 按奇偶排序数组 II(双指针)
LeetCode 933. 最近的请求次数(queue)
LeetCode 937. 重新排列日志文件(自定义排序)
LeetCode 938. 二叉搜索树的范围和(二叉树遍历+搜索剪枝)
LeetCode 942. 增减字符串匹配
LeetCode 944. 删列造序
LeetCode 950. 按递增顺序显示卡牌(deque)
LeetCode 951. 翻转等价二叉树(递归)
LeetCode 958. 二叉树的完全性检验(层序遍历)
LeetCode 965. 单值二叉树
LeetCode 969. 煎饼排序
LeetCode 970. 强整数
LeetCode 977. 有序数组的平方
LeetCode 979. 在二叉树中分配硬币(DFS)
LeetCode 980. 不同路径 III(DFS+回溯)
LeetCode 986. 区间列表的交集
LeetCode 989. 数组形式的整数加法
LeetCode 993. 二叉树的堂兄弟节点(层序遍历)
LeetCode 994. 腐烂的橘子(图的BFS)
LeetCode 997. 找到小镇的法官(图的出度和入度)
LeetCode 998. 最大二叉树 II
LeetCode 1002. 查找常用字符(哈希)
LeetCode 1004. 最大连续1的个数 III(滑动窗口)
LeetCode 1006. 笨阶乘
LeetCode 1008. 先序遍历构造二叉树(已知先序,求二叉搜索树)
LeetCode 1009. 十进制整数的反码(位运算)
LeetCode 1010. 总持续时间可被 60 整除的歌曲(哈希)
LeetCode 1013. 将数组分成和相等的三个部分
LeetCode 1014. 最佳观光组合
LeetCode 1021. 删除最外层的括号(栈)
LeetCode 1022. 从根到叶的二进制数之和(递归)
LeetCode 1028. 从先序遍历还原二叉树(栈)
LeetCode 1029. 两地调度(贪心)
LeetCode 1030. 距离顺序排列矩阵单元格(排序&Lambda表达式&BFS)
LeetCode 1038. 从二叉搜索树到更大和树(逆中序-右根左-降序)
LeetCode 1042. 不邻接植花(图的数据结构)
LeetCode 1043. 分隔数组以得到最大和(DP)
LeetCode 1046. 最后一块石头的重量(priority_queue 堆)
LeetCode 1047. 删除字符串中的所有相邻重复项(栈)
LeetCode 1051. 高度检查器
LeetCode 1052. 爱生气的书店老板(滑动窗口)
LeetCode 1071. 字符串的最大公因子(字符串的最大公约数)
LeetCode 1078. Bigram 分词
LeetCode 1079. 活字印刷(全排列回溯)
LeetCode 1089. 复写零
LeetCode 1094. 拼车
LeetCode 1103. 分糖果 II
LeetCode 1104. 二叉树寻路(数学&位运算)
LeetCode 1108. IP 地址无效化
LeetCode 1122. 数组的相对排序
LeetCode 1128. 等价多米诺骨牌对的数量(哈希)
LeetCode 1137. 第 N 个泰波那契数
LeetCode 1145. 二叉树着色游戏(计算节点个数)
LeetCode 1154. 一年中的第几天
LeetCode 1160. 拼写单词
LeetCode 1161. 最大层内元素和(层序遍历)
LeetCode 1171. 从链表中删去总和值为零的连续节点(哈希表)
LeetCode 1172. 餐盘栈(栈 + set)
LeetCode 1175. 质数排列
LeetCode 1184. 公交站间的距离
LeetCode 1185. 一周中的第几天
LeetCode 1208. 尽可能使字符串相等(滑动窗口)
LeetCode 1209. 删除字符串中的所有相邻重复项 II(栈)
LeetCode 1219. 黄金矿工(回溯)
LeetCode 1237. 找出给定方程的正整数解
LeetCode 1252. 奇数值单元格的数目
LeetCode 1253. 重构 2 行二进制矩阵(贪心)
LeetCode 1254. 统计封闭岛屿的数目(图的BFS & DFS)
LeetCode 1260. 二维网格迁移(二维转一维)
LeetCode 1261. 在受污染的二叉树中查找元素(树&哈希)
LeetCode 1262. 可被三整除的最大和(DP)
LeetCode 1266. 访问所有点的最小时间(数学)
LeetCode 1275. 找出井字棋的获胜者(位运算)
LeetCode 5112. 十六进制魔术数字(进制转换)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!