LeetCode HOT-100 分类总结

二分搜索

【NO.4】LeetCode HOT 100—4. 寻找两个正序数组的中位数
【NO.17】LeetCode HOT 100—33. 搜索旋转排序数组
【NO.18】LeetCode HOT 100—34. 在排序数组中查找元素的第一个和最后一个位置

排序

排序方法,如果可以确定数值的范围,可以通过转换为另一个数组的下标来统计出现的次数,及排序。

【NO.12】LeetCode HOT 100—21. 合并两个有序链表
【NO.14】LeetCode HOT 100—23. 合并 K 个升序链表(顺序合并,分治合并,优先队列)
【NO.26】LeetCode HOT 100—56. 合并区间(排序)
【NO.63】LeetCode HOT 100—215. 数组中的第K个最大元素(堆排序)
347. 前 K 个高频元素 (堆排序)

滑动窗口

【NO.3】LeetCode HOT 100—3. 无重复字符的最长子串
【NO.32】LeetCode HOT 100—76. 最小覆盖子串
【NO.69】LeetCode HOT 100—239. 滑动窗口最大值
【NO.89】LeetCode HOT 100—438. 找到字符串中所有字母异位词

哈希表

【NO.1】LeetCode HOT 100—1. 两数之和
【NO.23】LeetCode HOT 100—49. 字母异位词分组
【NO.47】LeetCode HOT 100—128. 最长连续序列
【NO.57】LeetCode HOT 100—169. 多数元素 (或者摩尔投票法)
【NO.71】LeetCode HOT 100— 253. 会议室 II(也可小顶堆,或者数组)
【NO.90】LeetCode HOT 100—448. 找到所有数组中消失的数字(也可以不使用哈希表,原地修改原数组)

位运算

【NO.48】LeetCode HOT 100—136. 只出现一次的数字 (异或运算)
【NO.82】LeetCode HOT 100—338. 比特位计数 (解法 也用到了动态规划)
【NO.91】LeetCode HOT 100—461. 汉明距离

前缀和

【NO.95】LeetCode HOT 100—560. 和为 K 的子数组

双指针

【NO.7】LeetCode HOT 100—11. 盛最多水的容器
【NO.8】LeetCode HOT 100—15. 三数之和(排序+双指针)
【NO.10】LeetCode HOT 100—19. 删除链表的倒数第 N 个结点
【NO.31】LeetCode HOT 100—75. 颜色分类
【NO.50】LeetCode HOT 100—141. 环形链表(快慢指针)
【NO.51】LeetCode HOT 100—142. 环形链表 II(快慢指针)
【NO.53】LeetCode HOT 100—148. 排序链表 (链表排序问题,归并排序)
【NO.56】LeetCode HOT 100—160. 相交链表
【NO.60】LeetCode HOT 100—206. 反转链表 (链表题都是借助指针)
【NO.66】LeetCode HOT 100—234. 回文链表
【NO.69】LeetCode HOT 100—239. 滑动窗口最大值 (二分搜索)
【NO.73】LeetCode HOT 100—283. 移动零 (左右)
【NO.74】LeetCode HOT 100—287. 寻找重复数(快慢指针)
【NO.96】LeetCode HOT 100—581. 最短无序连续子数组

【NO.59】LeetCode HOT 100—200. 岛屿数量(图的遍历)
【NO.61】LeetCode HOT 100—207. 课程表(判断图是否有环)

二叉树

一般都是深度优先遍历、 有部分是广度优先遍历
【NO.13】LeetCode HOT 100—22. 括号生成 (深度优先遍历)
【NO.37】LeetCode HOT 100—94. 二叉树的中序遍历
【NO.39】LeetCode HOT 100—98. 验证二叉搜索树
【NO.40】LeetCode HOT 100—101. 对称二叉树
【NO.41】LeetCode HOT 100—102. 二叉树的层序遍历
【NO.42】LeetCode HOT 100—104. 二叉树的最大深度
【NO.43】LeetCode HOT 100—105. 从前序与中序遍历序列构造二叉树 (深度优先遍历)
【NO.44】LeetCode HOT 100—114. 二叉树展开为链表 (前序遍历+列表,或者 寻找前序节点)
【NO.46】LeetCode HOT 100—124. 二叉树中的最大路径和 (深度优先遍历)
【NO.65】LeetCode HOT 100—226. 翻转二叉树
【NO.67】LeetCode HOT 100—236. 二叉树的最近公共祖先
【NO.75】LeetCode HOT 100—297. 二叉树的序列化与反序列化(深度优先遍历)
【NO.88】LeetCode HOT 100—437. 路径总和 III (深度优先遍历)
【NO.93】LeetCode HOT 100—538. 把二叉搜索树转换为累加树 (反序中序遍历)
【NO.94】LeetCode HOT 100—543. 二叉树的直径 (深度优先遍历)
【NO.97】LeetCode HOT 100—617. 合并二叉树 (深度优先遍历)

回溯

【NO.9】LeetCode HOT 100—17. 电话号码的字母组合
【NO.19】LeetCode HOT 100—39. 组合总和
【NO.21】LeetCode HOT 100—46. 全排列
【NO.34】LeetCode HOT 100—79. 单词搜索
【NO.77】LeetCode HOT 100—301. 删除无效的括号 (也可广度优先搜索)
【NO.92】LeetCode HOT 100—494. 目标和

贪心:

【NO.25】LeetCode HOT 100—55. 跳跃游戏
【NO.86】LeetCode HOT 100—406. 根据身高重建队列 (可以理解为贪心,深度优先搜索也可以)
6【NO.98】LeetCode HOT 100—621. 任务调度器

动态规划:

【NO.5】LeetCode HOT 100—5. 最长回文子串 (中心扩展)
【NO.6】LeetCode HOT 100—10. 正则表达式匹配
【NO.20】LeetCode HOT 100—42. 接雨水 (动态规划,可优化为双指针)
【NO.24】LeetCode HOT 100—53. 最大子数组和(也可前缀和)
【NO.27】LeetCode HOT 100—62. 不同路径
【NO.29】LeetCode HOT 100—64. 最小路径和
【NO.29】LeetCode HOT 100—70. 爬楼梯
【NO.30】LeetCode HOT 100—72. 编辑距离
【NO.38】LeetCode HOT 100—96. 不同的二叉搜索树
【NO.49】LeetCode HOT 100—139. 单词拆分
【NO.54】LeetCode HOT 100—152. 乘积最大子数组
【NO.58】LeetCode HOT 100—198. 打家劫舍
【NO.64】LeetCode HOT 100—221. 最大正方形
【NO.72】LeetCode HOT 100—279. 完全平方数
【NO.76】LeetCode HOT 100—300. 最长递增子序列 (也可 贪心+二分查找)
【NO.78】LeetCode HOT 100—309. 买卖股票的最佳时机含冷冻期
【NO.79】LeetCode HOT 100—312. 戳气球
【NO.81】LeetCode HOT 100—337. 打家劫舍 III(后序遍历+动态规划)
【NO.99】LeetCode HOT 100—647. 回文子串 (中心扩展)

背包问题:

01背包:

完全背包:

单调栈(辅助栈):

基础模型其实就是:在一维数组中对每一个数找到第一个比自己小的元素。这类“在一维数组中找第一个满足某种条件的数”的场景就是典型的单调栈应用场景。

【NO.11】LeetCode HOT 100—20. 有效的括号(辅助栈)
【NO.16】LeetCode HOT 100—32. 最长有效括号 (辅助栈,也可贪心)
【NO.35】LeetCode HOT 100—84. 柱状图中最大的矩形
【NO.36】LeetCode HOT 100—85. 最大矩形
【NO.55】LeetCode HOT 100—155. 最小栈 (辅助栈)
【NO.84】LeetCode HOT 100—394. 字符串解码
【NO.100】LeetCode HOT 100—739. 每日温度

并查集

【NO.85】LeetCode HOT 100—399. 除法求值

LRU缓存

【NO.52】LeetCode HOT 100—146. LRU 缓存

小技巧

【NO.2】LeetCode HOT 100—2. 两数相加(链表)
【NO.15】LeetCode HOT 100—31. 下一个排列(两遍遍历)
【NO.22】LeetCode HOT 100—48. 旋转图像(翻转代替旋转)
【NO.33】LeetCode HOT 100—78. 子集(可暴力、可深度优先,可回溯)
121. 买卖股票的最佳时机(最低价格买入)]
【NO.62】LeetCode HOT 100—208. 实现 Trie (前缀树)(前缀树)
【NO.68】LeetCode HOT 100—238. 除自身以外数组的乘积(借助数组)

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值