2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~

十二月了 再更一波 最近的题解都写在这个仓库中,另外仓库中也记录了自己学习前端过程中的收获~
近期刷题情况——
2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第1张图片

2021-11突然好多人看这篇XD 来更一波,依旧在保持刷题啦~
2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第2张图片

目前是跟着一本前端算法小册(前端er们用来巩固基础很不错哦!另外可以看到我在小册底下有很多留言啊哈哈哈(掘金与CSDN同名嗷))+力扣每日一题在巩固基础;预计12月份用一个月左右的时间刷一波剑指Offer,然后通过面试来试试自己几斤几两!

往期更新

于2021-8——2021-9决定放弃深造 选择前端研发的路线
所以改用JS刷题 并且选取更契合前端er的专题进行练习

  • 2021-5 最初版本
    参考了两位刷题路上的前辈的建议 感觉很受启发 分享一下自己理解汇总过后的算法刷题之路

笨鸟先飞早入林
多刷算法进大厂~

文章目录

  • 1.从前辈们的经验中获得学习建议
  • 2.第一阶段的刷题计划
      • 1.树
        • 树专题小结
        • 主要算法技巧练习
        • 树专题刷题笔记
      • 2.数组和字符串
        • 数组与字符串专题小结
        • 主要算法技巧练习
        • 数组与字符串专题刷题笔记
      • 3.链表
        • 链表专题小结
        • 主要算法技巧练习
        • 链表专题刷题笔记
      • 4.数组、字符串、链表、栈、队列 快速刷题复习
  • 2.第二阶段的刷题计划
      • 0.==算法性能分析==
      • 1.数组 5道题
      • 2.链表 7道题
      • 3.哈希表 8道
      • 4.字符串 7道
      • 5.双指针法 10道
      • 6.栈与队列 7道
      • 7.==二叉树== 30多道
      • 8.==回溯算法== 解难题 10多道
      • 9.==贪心算法== 这个有用得很!20多道
      • 10.动态规划 Dynamic Programming 42道
      • 11.单调栈
      • 12.==排序==
  • 3.后续阶段刷题展望

1.从前辈们的经验中获得学习建议

“【兔系】刷题 + 【龟系】刷题 的路线” 作者:胖君
大佬提到

龟系刷题——从第一道题开始 慢慢地自己思考 慢慢地想出更多的解法
刷法的精髓就是

  • 每个题目要做干净。
  • 每个题目仔细地进行琢磨 深入思考
  • 不要满足于一种解法,各种解法都写一写。

兔系刷题——从一类题型刷起 一道题几分钟没思路就直接看题解
刷法的精髓就是

  • 追求快速解题 多见题型!
  • 不会做就赶紧看题解 从这些题解的思路中学习到更多套路

打算先选取兔系的方式 多见题型 多总结套路!

根据分类标签进行刷题的顺序建议 作者:朱雀灬
大佬的一些有意思的小心得——

刷题是一个漫长而枯燥而上瘾的事情,一开始会觉得很无聊很难,但当掌握一定的套路之后,就会体验到不断AC的爽感。比如我在力扣上刷题的时候,

  • 0-100题这是啥啊,我脑子是不是不太好使。
  • 100-200题,有些题目能AC了,偶尔能想出一些很有意思的解法。
  • 200-300题,大部分题型都见过了,并且能很快判断出来这道题目在考察什么。
  • 300-400题,对常见题目能够来一道AC一道,并且开始有意识的接触高级数据结构。
  • 400题之后,我已经没什么能教你的了,你就是能给自己规划的做题家了!

给自己做个参考吧~

另外总结了大佬给出的建议 同样也是之后的一段时间自己打算努力的方向 在下面总结出来吧——

2.第一阶段的刷题计划

分为几个部分
—— 读LeetBook强化数据结构
——新出的力扣“学习计划”
——刷题总结套路 暂时选取Hot100 & easy难度 中的 相关题型

1.树

树专题小结

2021.5.21-2021.6.6 第一阶段的树专题先到这里吧 刷了两周多一点

  • 刷掉了LeetBook 二叉树 上所有题(剩了几道medium的感觉不太合适了 乱起来了。)
    2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第3张图片

  • 刷掉了Hot100上所有的easy题
    感觉还是比较受启发
    2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第4张图片

主要算法技巧练习
  • 递归 详见专题1 2 3 4
  • 分治思想 详见专题3
  • 对称性递归 (对一个对称的数据结构 进行对称性思考 把大问题分解成子问题进行递归 )稍后总结
  • 广度优先搜索(类似前序遍历)详见专题6
  • 深度优先搜索(类似后序遍历)详见专题5
树专题刷题笔记

力扣树专题-1 树的前中后序遍历 leetcode144 94 145 589 Java刷题笔记

力扣树专题-2 树的层序遍历 剑指Offer32 - I leetcode102 Java刷题笔记

力扣树专题-3 树的重建 leetcode105 106 Java刷题笔记

力扣树专题-4 用leetcode104求树的深度举例 总结递归秒杀树问题的套路!

力扣树专题-5 深度优先搜索 leetcode104 101 112 543 129 五道题小练一下深度优先遍历搜索算法

力扣树专题-6 广度优先搜索 刷熟一个模板(层序遍历打印二叉树)秒杀一堆问题leetcode102 111 116 617

力扣树专题-7 递归秒杀树问题的套路的体现 以及如何把最丑陋的代码变成最优美的代码 leetcode110 平衡二叉树的深入研究

2.数组和字符串

数组与字符串专题小结

2021.6.7-2021.8.3 第二阶段的数组专题的战线拉得很长!因为中间经历了期末考试还有一段低效期间 所以14道题刷了两个月之多!平均3天多一道题…惭愧啊 之后效率一定要提上来!

依旧是刷掉了leetbook上的大部分题目 数组和字符串
2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第5张图片

主要算法技巧练习
  • 数组基础操作 专题1
  • 二维数组基础操作 专题2
  • 字符串基础操作 专题3
  • 双指针技巧 专题4
    • 反向指针
    • 同向快慢指针
  • 前缀和技巧 待完成
  • 二分查找技巧 待完成
数组与字符串专题刷题笔记

力扣数组专题-1 初识数组 数组的基本操作 leetcode102 111 116 617 java刷题笔记

力扣数组专题-2 二维数组简介 leetcode102 111 116 617 java刷题笔记

力扣数组专题-3 字符串相关题型 剑指05 50 leetcode14 20 java刷题笔记

力扣数组专题-4 6道题掌握两种超实用的双指针技巧-反向指针leetcode344 561 167 与快慢指针leetcode27 485 209 java刷题笔记

3.链表

链表专题小结

2021.8.4-2021.9.4 一个月的时间 完成了链表专题的练习
总共刷了11题 依旧没有做到一天一道题欸!但是这个月的刷题做到了“温故而知新”
好多题都刷过好几遍 也用了不同的方法(欸这个好像和我的“兔系快速刷题想法”不太一样)
另外 在这个月里 我也做出了一个重要的决定 充分了解了自身实力与行业现状之后 我打算开始学习前端开发的内容,于是刷题语言换成了JS 虽然影响不大,但是标识着一个决心吧!
总之链表这里的简单题和好多常见套路 刷过这11道题是基本掌握了!
接下来将进行复习阶段 一天2-3题的刷题量 过一遍数据结构!

2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第6张图片

另外 啥时候用链表呢??
如果你需要经常添加或删除结点,链表可能是一个不错的选择。(不管在哪里插入 时间复杂度都是O(1)哦!)

如果你需要经常按索引访问元素,数组可能是比链表更好的选择(根据索引查值的话 数组时间复杂度仅为O(1)哦!)

主要算法技巧练习
  • 单链表与双链表 专题1 2
  • 双指针技巧 专题3
  • 链表的经典问题 专题4 —— 这里有好多模板化的内容 小套路也很多!同样也是面试的常客!!
链表专题刷题笔记

力扣链表专题 -1 单链表与双链表的预备知识

力扣链表专题 -2 【单链表 java js c++】 leetcode707 设计链表 通过设计一个自己的链表来强化对(单/双)链表的理解

力扣链表专题 - 3 双指针专题 leetcode141 142 160 19

力扣链表专题-4 【JS Java 面试超级高频题】链表的经典问题 leetcode206 203 328 234 21 2

4.数组、字符串、链表、栈、队列 快速刷题复习

这部分的内容参照了力扣的《学习计划:数据结构入门》
2021.9.5-2021.9.22 刷了20道题(可以看到有的题刷过好多次hhh) 虽然有的是之前刷过的(毕竟是复习嘛)但是还是很有收获!
2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第7张图片

刷题的第一阶段就到这里吧!
在这一阶段 掌握了基础的数组、字符串、链表的部分高频题目
简单了解了栈、队列

最关键的是 这阶段中确定了之后将“前端研发工程师“作为主要的努力方向!
2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~_第8张图片
冲!!!

2.第二阶段的刷题计划

这阶段对剩余的一些算法进行一个收尾

因为要快速准备面试 所以来不及看书了 先跟着代码随想录大大的刷题建议去做题!

另外就是根据Carl大大的指示再浏览一遍要刷的题!

我的了解:
首先打算了解一些前端工程师在面试时需要掌握的算法知识 除了之前练过的

  • 数组
  • 字符串
  • 链表
  • 树(这个感觉得重新练 忘得比较厉害 而且树也比较难!)

现在能想到的就是——

  • 二分查找
  • 各种排序
  • 栈、队列(强化练习下 之前练得比较少)
  • 回溯算法(这里不太确定是否重要)
  • 堆(这里更不太确定了 感觉不会考堆的内容吧!)
  • 贪心算法 (很好用的一个算法 可以用于解决一些实际问题 好使)
  • 动态规划

下面是Carl大大给出的顺序
打算先刷自己没刷过的

0.算法性能分析

1.数组 5道题

2.链表 7道题

3.哈希表 8道

4.字符串 7道

5.双指针法 10道

6.栈与队列 7道

7.二叉树 30多道

8.回溯算法 解难题 10多道

9.贪心算法 这个有用得很!20多道

10.动态规划 Dynamic Programming 42道

11.单调栈

12.排序

这个carl佬还没有总结 自己在网上找下总结吧!

3.后续阶段刷题展望

经典的剑指Offer的学习(先快速刷题准备面试辽)

  • 刷题
  • 看书

你可能感兴趣的:(力扣刷题,算法强化之路,#,分门别类刷力扣,算法,java,leetcode,刷题计划)