算法和数据结构知识点图

首先,了解算法和数据结构有哪些知识点,在后面的学习中有 大局观,对学习和刷题十分有帮助。

下面是我花了一天时间花的算法和数据结构的知识结构,大家可以看看。

后面是为大家 精心挑选的LeetCode题单,并根据题目知识点的类型分好了类别,大家可以根据每个知识点,进行有针对性的刷题。

数据结构

数组&双指针

  1. LeetCode 1. 两数之和

  2. LeetCode 4. 寻找两个正序数组的中位数

  3. LeetCode 15. 三数之和

  4. LeetCode 75. 颜色分类

  5. LeetCode 76. 最小覆盖子串

  6. LeetCode 142. 环形链表 II

  7. LeetCode 234. 回文链表

  8. LeetCode 283. 移动零

链表

  1. LeetCode 19. 删除链表的倒数第 N 个结点

  2. LeetCode 148. 排序链表

  3. LeetCode 160. 相交链表

  4. LeetCode 206. 反转链表

队列&栈

  1. LeetCode 20. 有效的括号

  2. LeetCode 21. 合并两个有序链表

  3. LeetCode 84. 柱状图中最大的矩形

  4. LeetCode 85. 最大矩形

  5. LeetCode 155. 最小栈

  6. LeetCode 239. 滑动窗口最大值

  7. LeetCode 394. 字符串解码

  8. LeetCode 739. 每日温度

  9. LeetCode 3. 无重复字符的最长子串

哈希表

  1. LeetCode 49. 字母异位词分组

  2. 128. 最长连续序列

  3. LeetCode 141. 环形链表

  4. LeetCode 146. LRU 缓存机制

  5. LeetCode 560. 和为K的子数组

二叉树

  1. LeetCode 94. 二叉树的中序遍历

  2. 101. 对称二叉树

  3. 102. 二叉树的层序遍历

  4. LeetCode 104. 二叉树的最大深度

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

  6. LeetCode 114. 二叉树展开为链表

  7. LeetCode 543. 二叉树的直径

二叉搜索树

  1. LeetCode 96. 不同的二叉搜索树
  2. LeetCode 98. 验证二叉搜索树

算法

模拟

  1. LeetCode 48. 旋转图像

贪心

  1. LeetCode 11. 盛最多水的容器
  2. LeetCode 714. 买卖股票的最佳时机含手续费
  3. LeetCode 122. 买卖股票的最佳时机 II
  4. LeetCode 55. 跳跃游戏
  5. LeetCode 309. 最佳买卖股票时机含冷冻期
  6. LeetCode 406. 根据身高重建队列

二分

  1. LeetCode 33. 搜索旋转排序数组
  2. LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置

递归&回溯

  1. LeetCode 17. 电话号码的字母组合

  2. LeetCode 22. 括号生成

  3. LeetCode 39. 组合总和

  4. LeetCode 46. 全排列

  5. LeetCode 78. 子集

  6. LeetCode 79. 单词搜索

  7. LeetCode 226. 翻转二叉树

深度优先搜索DFS

  1. LeetCode 236. 二叉树的最近公共祖先

  2. LeetCode 301. 删除无效的括号

宽度优先搜索BFS

  1. LeetCode 200. 岛屿数量

  2. LeetCode 617. 合并二叉树

分治

  1. LeetCode 53. 最大子序和

排序算法

  1. LeetCode 56. 合并区间

  2. LeetCode 215. 数组中的第K个最大元素

  3. LeetCode 347. 前 K 个高频元素

Manacher算法

  1. LeetCode 5. 最长回文子串

  2. LeetCode 647. 回文子串

字典树Trie

  1. LeetCode 139. 单词拆分

  2. LeetCode 208. 实现 Trie (前缀树)

动态规划

  1. LeetCode 10. 正则表达式匹配

  2. LeetCode 32. 最长有效括号

  3. LeetCode 42. 接雨水

  4. LeetCode 62. 不同路径

  5. LeetCode 64. 最小路径和

  6. LeetCode 70. 爬楼梯

  7. LeetCode 72. 编辑距离

  8. LeetCode 139. 单词拆分

  9. LeetCode 152. 乘积最大子数组

  10. LeetCode 198. 打家劫舍

  11. LeetCode 221. 最大正方形

  12. LeetCode 300. 最长递增子序列

  13. LeetCode 337. 打家劫舍 III

  14. LeetCode 416. 分割等和子集

  15. LeetCode 494. 目标和

最短路算法

  1. LeetCode 743. 网络延迟时间

最小生成树

  1. 1584. 连接所有点的最小费用

拓扑排序

  1. LeetCode 207. 课程表

并查集

  1. LeetCode 399. 除法求值

还在不断完善中。

我把学习 算法和数据结构和计算机核心的书籍 都下面整理好了获取,在学习计算机的路上肯定能用到,身边的同学都在看。

书单

https://mp.weixin.qq.com/s/vtIjAQQdEik2A7NCIamSqA

下面讲一下如何刷题。

如何正确的做一道题

  • 从简入手: 先从简单暴力(时间复杂度高)的方法入手。
  • 优化: 思考如何在第一步的基础上,如何优化算法,降低时间复杂度。
  • 构思代码: 有了以上两步,我们此时应该已经有了一个正确的想法,此时我们应该构思代码,有那几部分,每部分实现什么功能,代码怎么写。而不是直接闷头去写代码,因为很多时候没想清楚,直接去写代码,会导致写了一半发现思路不对,写的代码都是错误的。
  • 写代码: 实现第三步代码。
  • (Debug): 如果我们的题目没有通过测试,应该检查代码是不是有bug、思路对不对等。
  • 总结与反思: 题目通过了,我们应该总结一下这道题考察的知识点、切入的角度、同类型的题目等,同时思考有没有更优的办法。

做到以上几点,一道题学习的就很透了,遇到同类型的题目可以举一反三啦。

最后

我是编程熊,字节跳动、旷视科技前员工、ACM金牌选手。

微信搜索【一只编程熊】,获取 学习资源、面试、内推交流群。

ACM金牌选手整理的【LeetCode刷题顺序】的更多相关文章

  1. LeetCode 刷题顺序表

    Id Question Difficulty Frequency Data Structures Algorithms 1 Two Sum 2 5 array + set sort + two poi ...

  2. ACM金牌选手讲解LeetCode算法《哈希》

    大家好,我是编程熊. 往期文章介绍了<线性表>中的数组.链表.栈.队列,以及单调栈和滑动窗口. ACM金牌选手讲解LeetCode算法<线性表> ACM金牌选手讲解LeetCo ...

  3. ACM金牌选手讲解LeetCode算法《栈和队列的高级应用》

    大家好,我是编程熊,双非逆袭选手,字节跳动.旷视科技前员工,ACM金牌,保研985,<ACM金牌选手讲解LeetCode算法系列>作者. 上一篇文章讲解了<线性表>中的数组.链 ...

  4. ACM金牌选手算法讲解《线性表》

    哈喽,大家好,我是编程熊,双非逆袭选手,字节跳动.旷视科技前员工,ACM亚洲区域赛金牌,保研985研究生,分享算法与数据结构.计算机学习经验,帮助大家进大厂~ 公众号:『编程熊』 文章首发于: ACM ...

  5. LeetCode刷题专栏第一篇--思维导图&时间安排

    昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日 ...

  6. LeetCode刷题的一点个人建议和心得

    目录 1.    为什么我们要刷LeetCode? 2.    LeetCode的现状和问题 3.    本文的初衷 4.    LeetCode刷题建议 4.1入门数据结构,打基础阶段 4.2 建立 ...

  7. 看完互联网大佬的「LeetCode 刷题手册」, 手撕了 400 道 Leetcode 算法题

    大家好,我是 程序员小熊 ,来自 大厂 的程序猿.相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode ...

  8. LeetCode刷题模板(1):《我要打10个》之二分法

    Author       :  叨陪鲤 Email         : vip_13031075266@163.com Date          : 2021.01.23 Copyright : 未 ...

  9. leetcode刷题指南

    转载自:http://blog.csdn.net/lnho2015/article/details/50962989 以下是我个人做题过程中的一些体会: 1. LeetCode的题库越来越大,截止到目 ...

随机推荐

  1. 如何对你的Linux系统进行基准测试: 3开源基准测试工具

    如何对你的Linux系统进行基准测试: 3开源基准测试工具   0 赞0 评论 文章标签:SYS  Source  benchmark  tool  开源  基准  系统     linux实用程序的 ...

  2. Apple iWork(Pages、Numbers、Keynote)11.0 发布

    苹果今天将其专为 iOS 和 macOS 设备设计的 iWork 应用套件更新为版本 11,引入了许多新功能和改进功能. Pages 文稿. 文档高手,精美不言而喻. 进一步了解 Pages 文稿 & ...

  3. 浅析IOC 和 DI

    学习过spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  4. 解决了一个java服务线程退出的问题

    问题背景 ​ 早上才上班,测试就提了一个问题:"昨天所有批量任务都没有跑".我看了一下任务监控页面,任务是有生成的,但却一直在等待调度状态.初步怀疑是我们的调度服务问题,于是上去查 ...

  5. Python+Selenium - 三种等待方式

    元素:存在 > 可见 > 可用 需要判断元素状态 等待方式1:强制等待  -- 辅助 设置等待几秒,就必须等待几秒 示例: from time import sleepsleep(3) 强 ...

  6. 中国摄像头CMOS需求潜力旺盛

    中国摄像头CMOS需求潜力旺盛 CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)的缩写.它是指制造大规模集成电路芯片用的一种技术或用这种 ...

  7. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

  8. CodeGen融合核心关系循环扩展

    CodeGen融合核心关系循环扩展 Expansion Tokens <HARMONYCORE_RELATION_NAME> 插入当前关系的名称.关系名称将自动生成,但可以由Harmony ...

  9. 如何使用Nsight Compute?

    如何使用Nsight Compute? 下图command Line Argunments是指训练或测试命令,Linux下直接用测试或训练命令

  10. Python分析离散心率信号(上)

    Python分析离散心率信号(上) 一些理论和背景 心率包含许多有关信息.如果拥有心率传感器和一些数据,那么当然可以购买分析包或尝试一些可用的开源产品,但是并非所有产品都可以满足需求.也是这种情况.那 ...