熟悉一些常用的算法编程题,在应对面试的时候,还是很有帮助的。通过分门别类,将 leetcode hot100 的题目进行梳理,能够加强个人的归纳总结能力,也能让自己在下次复习的时候能够快速的熟悉。
对于 leetcode 上常见的题目,可以大致分为以下几大块:数组、链表、哈希表、字符串、双指针法、栈与队列、二叉树、回溯算法、贪心算法、动态规划、单调栈、图。

hot 100

  • 数组
  • 哈希表
  • 链表
  • 双指针法
  • 动态规划
  • 回溯法
  • 栈与队列
  • 二叉树
  • 其他

数组

  • easy

    • 买卖股票的最佳时机 记录最低价格,更新最大diff
    • 只出现一次的数字 亦或大法
    • 多数元素 哈希法;排序法
    • 移动零
    • 找到所有数组中消失的数字 加数标记法
  • medium
    • 下一个排列
    • 搜索旋转排序数组 二分法
    • 在排序数组中查找元素的第一个和最后一个位置 二分法
    • 旋转图像 自外向内+旋转转移方程
    • 区间合并 排序
    • 岛屿数量 dfs
    • 数组中的第K个最大元素 快排partion;小顶堆
    • 除自身以外数组的乘积 把乘积拆成两部分 L[i-1] * R[i+1]
    • 搜索二维矩阵II Z形走法
  • hard
    • 寻找两个正序数组的中位数 二分法

哈希表

  • easy

    • 两数之和
  • medium
    • 字母异位词分组
    • 最长连续序列 哈希表查找复杂度为 O(1);unordered_set

链表

  • easy

    • 合并两个有序链表
    • 环形链表 哈希法;快慢指针法
    • 反转链表 pre、cur、next
    • 相交链表
    • 回文链表 栈;反转链表
  • medium
    • 两数相加
    • 删除链表的倒数第 N 个结点 快慢指针
    • 链表排序 归并排序;合并两个有序链表
    • 环形链表II 哈希法;快慢指针法
  • hard
    • 合并K个升序链表 两种方法:分治合并或者采用优先队列
    • LRU 缓存 哈希表+双向链表

双指针法

  • medium

    • 无重复字符的最长子串 双指针滑窗法
    • 盛最多水的容器 从两端开始往里收缩,高度取决于木桶短板
    • 三数之和 排序+双指针,同时注意跳过重复值
    • 颜色分类 用 [start, end) 表示区间。注意开闭关系

动态规划

  • easy

    • 最大子数组和 以i为结尾的子数组和
    • 爬楼梯
  • medium
    • 最长回文子串 以 i 到 j 是否为回文子串作为函数
    • 接雨水 记录左右端的最大高度
    • 跳跃游戏 从后往前找可行的位置;也可以采用贪心思路
    • 不同路径
    • 最小路径和
    • 不同的二叉搜索树 转移方程略难找
    • 打家劫舍
    • 乘积最大子数组
    • 单词拆分
    • 回文子串 动态规划法;中心拓展法
    • 最大正方形 左边、上边、左上边。
    • 完全平方数

回溯法

  • medium

    • 电话号码的字母组合
    • 括号生成 带剪枝的dfs
    • 组合之和
    • 全排列 按位选择
    • 子集
    • 单词搜索 dfs

栈与队列

  • easy

    • 有效的括号
    • 最小栈
  • hard
    • 柱状图中最大的矩形 单调栈
    • 最大矩形 柱状图中最大的矩形之升级版

二叉树

  • easy

    • 二叉树的中序遍历 递归、迭代
    • 对称二叉树 递归
    • 二叉树的最大深度 左右子树maxDepth + 1
    • 翻转二叉树
  • medium
    • 验证二叉搜索树 中序遍历
    • 二叉树的层序遍历 bfs
    • 从前序与中序遍历序列构造二叉树 递归,数组划分
    • 二叉树展开成链表 维护一个pre节点
    • 二叉树的最近公共祖先 dfs 递归

  • medium

    • 课程表 拓扑排序 bfs / dfs

其他

  • medium

    • 前缀树

leetcode hot100 梳理相关推荐

  1. LeetCode Hot100 ---- 滑动窗口专题

    什么是滑动窗口? 其实就是一个队列,比如题中的 abcabcbb找出其中不含有重复字符的 最长子串 的长度,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满 ...

  2. LeetCode Hot100 ---- 二分查找专题

    什么是二分查找 二分查找是计算机科学中最基本.最有用的算法之一. 它描述了在有序集合中搜索特定值的过程. 二分查找中使用的术语: 目标 Target -- 你要查找的值 索引 Index -- 你要查 ...

  3. LeetCode Hot100 ---- 链表专题专题

    链表 力扣109:将有序链表转化为二叉搜素树 力扣141:环形链表判断是否有环 力扣142:环形链表检测入口位置 力扣143:重拍链表 力扣160:相交链表 力扣206:反转链表 力扣21:合并两个有 ...

  4. leetcode hot100(第一部分) + python(c++)

    1-1.两数之和 思路1:两层for循环 O(n2) class Solution:def twoSum(self, nums, target):res = []for i in range(len( ...

  5. LeetCode hot-100 简单and中等难度,61-70.

    207. 课程表 难度中等520 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 . 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成 ...

  6. LeetCode hot-100 简单and中等难度,81-90.

    打家劫舍系列题 198. 打家劫舍 难度简单1005收藏分享切换为英文关注反馈 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防 ...

  7. LeetCode hot-100 简单and中等难度,71-80.

    279. 完全平方数 难度中等538收藏分享切换为英文关注反馈 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少 ...

  8. LeetCode hot-100 简单and中等难度,91-100.

    461. 汉明距离 难度简单307收藏分享切换为英文关注反馈 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ ...

  9. LeetCode hot-100 简单and中等难度,51-60.

    142. 环形链表 II 难度中等570收藏分享切换为英文关注反馈 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示 ...

最新文章

  1. Java学习总结:17
  2. 返回顶部的js实现(jQuery/MooTools)
  3. 使用IDEA创建maven父子工程项目
  4. 5G与WiFi 6之争,对物联网意味着什么
  5. Sequence Classification with LSTM Recurrent Neural Networks in Python with Keras-学习笔记
  6. 云服务器怎么管理,第一次使用云服务器,如何使用和管理云服务器
  7. 深入理解密码学基本概念和应用
  8. Vnc安装rhel6服务器
  9. 剑指offer面试题34. 二叉树中和为某一值的路径(先序遍历)(回溯)
  10. matconvnet在MATLAB2013配置过程中遇到的问题
  11. 前公司未支付竞业限制补偿金,如何起诉?
  12. ajax ruby,在Ruby on Rails中使用AJAX的教程
  13. EagleEye论文+代码
  14. 正襟危坐说--操作系统(伍):进程间通信
  15. 人工智能的发展趋势分析
  16. 步进电机驱动器驱动不了电机的一种情况及解决方案
  17. 热力学统计物理专题:系综理论
  18. ubuntu 12.04 ATI 驱动
  19. 《CCNP安全Secure 642-637认证考试指南》——8.8节填空
  20. 《如梦令·常记溪亭日暮》【宋】李清照

热门文章

  1. OTA 简介和常见源码目录-1
  2. linux能运行安卓模拟器吗,Android模拟器的使用方法(Linux)
  3. 万兆电口网卡性能分析
  4. Apache HAWQ集群的安装部署
  5. 基于无线通讯病房远程通信呼叫和温度检测系统设计
  6. 马尔科夫链原理介绍【通俗易懂】
  7. 2022湖南最新建筑八大员(市政)考试试题题库及答案解析
  8. DCOS到底是啥?看完这篇你就懂了~
  9. Vector为什么是线程安全的呢?Vector为什么是线程不安全的呢?
  10. CTK框架——CTK Widgets快速入门