LeetCode刷题攻略

作者:Rocky0429
链接:https://www.zhihu.com/question/280279208/answer/2159525933
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

【数组】

精讲:

蛋蛋惨遭数组滑铁卢,面试官建议回村养猪。​mp.weixin.qq.com/s?__biz=MzI0NjAxMDU5NA==&mid=2475918890&idx=1&sn=b5dbd85bbe358d7b1668e2d9c27e2122&chksm=ff22e1a7c85568b122279e836dec029dcc9b6a8049cf84c659ccff6f69eb29e6187912b1de66&token=1996171232&lang=zh_CN#rd​mp.weixin.qq.com/s?__biz=MzI0NjAxMDU5NA==&mid=2475918890&idx=1&sn=b5dbd85bbe358d7b1668e2d9c27e2122&chksm=ff22e1a7c85568b122279e836dec029dcc9b6a8049cf84c659ccff6f69eb29e6187912b1de66&token=1996171232&lang=zh_CN#rd

LeetCode1 两数之和

LeetCode4 寻找两个正序数组地中位数

LeetCode15 三数之和

LeetCode75 颜色分类

LeetCode76 最小覆盖子串

【链表】

精讲:

链表,画几下就整明白了!​mp.weixin.qq.com/s?__biz=MzI0NjAxMDU5NA==&mid=2475918898&idx=1&sn=e5c7bf9c43dd205082f77beead41a187&chksm=ff22e1bfc85568a945b3e4569ea727148e6e736ccce15ec12d77c2f8ae7b8acb2eabf900e3a6&token=1996171232&lang=zh_CN#rd​mp.weixin.qq.com/s?__biz=MzI0NjAxMDU5NA==&mid=2475918898&idx=1&sn=e5c7bf9c43dd205082f77beead41a187&chksm=ff22e1bfc85568a945b3e4569ea727148e6e736ccce15ec12d77c2f8ae7b8acb2eabf900e3a6&token=1996171232&lang=zh_CN#rd正在上传…重新上传取消​

LeetCode19 删除链表的倒数第 N 个节点

LeetCode24 交换链表:交换吧,链表!

LeetCode25 K 个一组翻转链表

LeetCode141 环形链表:链表,你有环嘛?

LeetCode142 环形链表Ⅱ:有环链表,你的入口在哪?

LeetCode160 相交链表:对不起,相交链表,我做的有点不浪漫。

LeetCode206 反转链表:反转吧,链表!

LeetCode707 设计链表:稳了,一题学会链表的 5 种操作!

栈和队列

精讲:

呔!“栈”住,队列!​mp.weixin.qq.com/s?__biz=MzI0NjAxMDU5NA==&mid=2475919772&idx=1&sn=8574188f72d892d501f15956b6a2a629&chksm=ff22ee11c8556707dd6d5af977125ce6698ebbcfaa3b9083e14c3658d2975761079a9c2082a4&token=1996171232&lang=zh_CN#rd​mp.weixin.qq.com/s?__biz=MzI0NjAxMDU5NA==&mid=2475919772&idx=1&sn=8574188f72d892d501f15956b6a2a629&chksm=ff22ee11c8556707dd6d5af977125ce6698ebbcfaa3b9083e14c3658d2975761079a9c2082a4&token=1996171232&lang=zh_CN#rd正在上传…重新上传取消​

LeetCode20 有效的括号:栈,你告诉我这个括号配不配!

LeetCode150 逆波兰表达式求值:栈,求求这个逆波兰表达式的值!

LeetCode225 用队列实现栈:咋又要用队列实现栈了嘛?!

LeetCode232 用栈实现队列:用栈实现队列怎么样?

LeetCode239 滑动窗口最大值:队列,帮我搞一下这个滑动窗口最大值。

LeetCode703 数据流中的第 k 大元素

LeetCode1047 删除字符串中的所有相邻重复项:栈,你给我玩这个字符消消乐!

字符串

LeetCode151 翻转字符串里的单词

LeetCode344 反转字符串

LeetCode541 反转字符串Ⅱ

哈希表

LeetCode1 两数之和

LeetCode15 三数之和

LeetCode18 四数之和

LeetCode49 字母异位词分组

LeetCode242 有效的字母异位词

二叉树

LeetCode 94 二叉树的中序遍历

LeetCode101 对称二叉树

LeetCode102 二叉树的层序遍历

LeetCode 104 二叉树的最大深度

LeetCode 105 从前序与中序遍历序列构造二叉树

LeetCode 114. 二叉树展开为链表

LeetCode236 二叉树的最近公共祖先

LeetCode 543 二叉树的直径

二叉搜索树

LeetCode96 不同的二叉搜索树

LeetCode98 验证二叉搜索树

LeetCode235 二叉搜索树的最近公共祖先

算法

递归 & 分治 & 回溯

LeetCode 17 电话号码的字母组合

LeetCode 22 括号生成

LeetCode 39 组合总和

LeetCode 46 全排列

LeetCode 78 子集

LeetCode 79 单词搜索

LeetCode 226 翻转二叉树

贪心算法

LeetCode 11. 盛最多水的容器

LeetCode 55. 跳跃游戏

LeetCode 122. 买卖股票的最佳时机 II

LeetCode 309. 最佳买卖股票时机含冷冻期

LeetCode 406. 根据身高重建队列

LeetCode 714. 买卖股票的最佳时机含手续费

深度优先 & 广度优先

LeetCode22 括号生成

LeetCode36 有效的数独

LeetCode37 解数独

LeetCode51 N皇后

LeetCode52 N皇后Ⅱ

LeetCode102 二叉树的层次遍历

LeetCode104 二叉树的最大深度

LeetCode 111 二叉树的最小深度

二分查找

LeetCode34 在排序数组中查找元素的第一个和最后一个位置

LeetCode69 实现 int sqrt(int x) 函数

字典树

LeetCode79 单词搜索

LeetCode208 实现 Trie(前缀树)

LeetCode212 单词搜索Ⅱ

位运算

LeetCode52 N皇后Ⅱ

LeetCode191 位1的个数

LeetCode231 2 的幂

LeetCode338 比特位计数

动态规划

LeetCode70 爬楼梯

LeetCode72 编辑距离

LeetCode120 三角形最小路径和

LeetCode121 买卖股票的最佳时机

LeetCode122 买卖股票的最佳时机Ⅱ

LeetCode123 买卖股票的最佳时机Ⅲ

LeetCode152 乘积最大子序列

LeetCode188 买卖股票的最佳时机 Ⅳ

LeetCode300 最长上升子序列

LeetCode309 买卖股票的最佳时机含冷冻期

LeetCode322 零钱兑换

LeetCode714 买卖股票的最佳时机含手续费

并查集

LeetCode200 岛屿的个数

LeetCode547 省份数量

-------------------------------------------------------------------------------------------------------------------------

Hash相关

  • q1_两数之和
  • q387_字符串中的第一个唯一字符

链表操作

  • q2_两数相加
  • q19_删除链表的倒数第N个节点
  • q25_k个一组翻转链表
  • q61_旋转链表
  • q138_复制带随机指针的链表
  • q206_反转链表

双指针遍历/滑动窗口

  • q3_无重复字符的最长子串
  • q11_盛最多水的容器
  • q15_三数之和
  • q16_最接近的三数之和
  • q26_删除排序数组中的重复项
  • q42_接雨水
  • q121_买卖股票的最佳时机
  • q209_长度最小的子数组

快慢指针遍历

  • q141_环形链表
  • q202_快乐数
  • q876_链表的中间结点

区间合并

  • q56_合并区间

字符串操作

  • q6_Z字形变换
  • q14_最长公共前缀
  • q763_划分字母区间

数字操作

  • q7_整数反转
  • q8_字符串转换整数
  • q9_回文数
  • q43_字符串相乘
  • q172_阶乘后的零
  • q258_各位相加

数组操作

  • q54_螺旋矩阵
  • q73_矩阵置零
  • q78_子集
  • q384_打乱数组
  • q581_最短无序连续子数组
  • q945_使数组唯一的最小增量

栈相关

  • q20_有效的括号
  • q32_最长有效括号
  • q155_最小栈
  • q224_基本计算器
  • q232_用栈实现队列
  • q316_去除重复字母

堆相关

  • q215_数组中的第K个最大元素
  • q347_前K个高频元素

递归

  • q21_合并两个有序链表
  • q101_对称二叉树
  • q104_二叉树的最大深度
  • q226_翻转二叉树
  • q236_二叉树的最近公共祖先
  • q1325_删除给定值的叶子节点

分治法/二分法

  • q23_合并K个排序链表
  • q33_搜索旋转排序数组
  • q34_在排序数组中查找元素的第一个和最后一个位置

动态规划

  • q5_最长回文子串
  • q53_最大子序和
  • q62_不同路径
  • q64_最小路径和
  • q70_爬楼梯
  • q118_杨辉三角
  • q300_最长上升子序列
  • q1143_最长公共子序列
  • q1277_统计全为1的正方形子矩阵

回溯法

  • q10_正则表达式匹配
  • q22_括号生成
  • q40_组合总和2
  • q46_全排列

字典树(前缀树)

  • q648_单词替换

树的遍历

  • q94_二叉树的中序遍历
  • q102_二叉树的层次遍历
  • q110_平衡二叉树
  • q144_二叉树的前序遍历
  • q145_二叉树的后序遍历

二叉搜索树相关

  • q98_验证二叉搜索树
  • q450_删除二叉搜索树中的节点
  • q701_二叉搜索树中的插入操作

-----------------------------------------------------------------------------------------------------------

  • 数组

    • 1. 数组理论基础
    • 2. 二分查找
    • 3. 移除元素
    • 4. 有序数组的平方
    • 5. 长度最小的子数组
    • 6. 螺旋矩阵II
    • 7. 总结篇
  • 链表

    • 1. 链表理论基础
    • 2. 移除链表元素
    • 3. 设计链表
    • 4. 翻转链表
    • 5. 两两交换链表中的节点
    • 6. 删除链表的倒数第N个节点
    • 7. 链表相交
    • 8. 环形链表II
    • 9. 总结篇
  • 哈希表

    • 1. 哈希表理论基础
    • 2. 有效的字母异位词
    • 3. 两个数组的交集
    • 4. 快乐数
    • 5. 两数之和
    • 6. 四数相加II
    • 7. 赎金信
    • 8. 三数之和
      • 哈希解法
      • 双指针
      • 其他语言版本
    • 9. 四数之和
    • 10. 总结篇
  • 字符串

    • 1. 反转字符串
    • 2. 反转字符串II
    • 3. 替换空格
    • 4. 翻转字符串里的单词
    • 5. 左旋转字符串
    • 6. 实现strStr())
    • 7. 重复的子字符串
    • 8. 总结篇
  • 双指针法

    • 1. 移除元素
    • 2. 反转字符串
    • 3. 替换空格
    • 4. 翻转字符串里的单词
    • 5. 翻转链表
    • 6. 删除链表的倒数第N个节点
    • 7. 链表相交
    • 8. 环形链表II
    • 9. 三数之和
      • 哈希解法
      • 双指针
      • 其他语言版本
    • 10. 四数之和
    • 11. 双指针总结
  • 栈与队列

    • 1. 栈与队列理论基础
    • 2. 用栈实现队列
    • 3. 用队列实现栈
    • 4. 有效的括号
    • 5. 删除字符串中的所有相邻重复项
    • 6. 逆波兰表达式求值
    • 7. 滑动窗口最大值
    • 8. 前K个高频元素
    • 9. 栈与队列总结
  • 二叉树

    • 1. 二叉树理论基础
    • 2. 二叉树的递归遍历
    • 3. 二叉树的迭代遍历
    • 4. 二叉树的统一迭代法
    • 5. 二叉树的层序遍历
    • 6. 翻转二叉树
    • 7. 二叉树周末总结
    • 8. 对称二叉树
    • 9. 二叉树的最大深度
    • 10. 二叉树的最小深度
    • 11. 完全二叉树的节点个数
    • 12. 平衡二叉树
    • 13. 二叉树的所有路径
    • 14. 二叉树周末总结
    • 15. 二叉树中递归带着回溯
    • 16. 左叶子之和
    • 17. 找树左下角的值
    • 18. 路径总和
    • 19. 从中序与后序遍历序列构造二叉树
    • 20. 最大二叉树
    • 21. 二叉树周末总结
    • 22. 合并二叉树
    • 23. 二叉搜索树中的搜索
    • 24. 验证二叉搜索树
    • 25. 二叉搜索树的最小绝对差
    • 26. 二叉搜索树中的众数
    • 27. 二叉树的最近公共祖先
    • 28. 二叉树周末总结
    • 29. 二叉搜索树的最近公共祖先
    • 30. 二叉搜索树中的插入操作
    • 31. 删除二叉搜索树中的节点
    • 32. 修剪二叉搜索树
    • 33. 将有序数组转换为二叉搜索树
    • 34. 把二叉搜索树转换为累加树
    • 35. 二叉树总结篇
  • 回溯算法

    • 1. 回溯算法理论基础
    • 2. 组合问题
    • 3. 组合(优化)
    • 4. 组合总和III
    • 5. 电话号码的字母组合
    • 6. 回溯周末总结
    • 7. 组合总和
    • 8. 组合总和II
    • 9. 分割回文串
    • 10. 复原IP地址
    • 11. 子集问题
    • 12. 回溯周末总结
    • 13. 子集II
    • 14. 递增子序列
    • 15. 全排列
    • 16. 全排列II
    • 17. 回溯周末总结
    • 18. 回溯算法去重问题的另一种写法
    • 19. 重新安排行程
    • 20. N皇后
    • 21. 解数独
    • 22. 回溯法总结篇
  • 贪心算法

    • 1. 贪心算法理论基础
    • 2. 分发饼干
    • 3. 摆动序列
    • 4. 最大子序和
    • 5. 贪心周总结
    • 6. 买卖股票的最佳时机II
    • 7. 跳跃游戏
    • 8. 跳跃游戏II
    • 9. K次取反后最大化的数组和
    • 10. 贪心周总结
    • 11. 加油站
    • 12. 分发糖果
    • 13. 柠檬水找零
    • 14. 根据身高重建队列
    • 15. 贪心周总结
    • 16. 根据身高重建队列(vector原理讲解)
    • 17. 用最少数量的箭引爆气球
    • 18. 无重叠区间
    • 19. 划分字母区间
    • 20. 合并区间
    • 21. 贪心周总结
    • 22. 单调递增的数字
    • 23. 买卖股票的最佳时机含手续费
    • 24. 监控二叉树
    • 25. 贪心算法总结篇
  • 动态规划

    • 1. 动态规划理论基础
    • 2. 斐波那契数
    • 3. 爬楼梯
    • 4. 使用最小花费爬楼梯
    • 5. 动规周总结
    • 6. 不同路径
    • 7. 不同路径II
    • 8. 整数拆分
    • 9. 不同的二叉搜索树
    • 10. 动规周总结
    • 11. 0-1背包理论基础(一)
    • 12. 0-1背包理论基础(二)
    • 13. 分割等和子集
    • 14. 最后一块石头的重量II
    • 15. 动规周总结
    • 16. 目标和
    • 17. 一和零
    • 18. 完全背包理论基础
    • 19. 零钱兑换II
    • 20. 动规周总结
    • 21. 组合总和Ⅳ
    • 22. 爬楼梯(进阶版)
    • 23. 零钱兑换
    • 24. 完全平方数
    • 25. 动规周总结
    • 26. 单词拆分
    • 27. 多重背包理论基础
    • 28. 背包问题总结篇
    • 29. 打家劫舍
    • 30. 打家劫舍II
    • 31. 打家劫舍III
    • 32. 买卖股票的最佳时机
    • 33. 动规周总结
    • 34. 买卖股票的最佳时机II
    • 35. 买卖股票的最佳时机III
    • 36. 买卖股票的最佳时机IV
    • 37. 最佳买卖股票时机含冷冻期
    • 38. 动规周总结
    • 39. 买卖股票的最佳时机含手续费
    • 40. 股票问题总结篇
    • 41. 最长上升子序列
    • 42. 最长连续递增序列
    • 43. 最长重复子数组
    • 44. 最长公共子序列
    • 45. 不相交的线
    • 46. 最大子序和
    • 47. 判断子序列
    • 48. 不同的子序列
    • 49. 两个字符串的删除操作
    • 50. 编辑距离
    • 51. 编辑距离总结篇
    • 52. 回文子串
    • 53. 最长回文子序列
    • 54. 动态规划总结篇
  • 单调栈

    • 1. 每日温度
    • 2. 下一个更大元素I
    • 3. 下一个更大元素II
    • 4. 接雨水
    • 5. 柱状图中最大的矩形

你可能感兴趣的:(leetcode,算法,职场和发展)