你还在犹豫刷LeetCode吗?我都刷了100道了,这份总结你必须要看一下!

前言

最近一周都没有好好刷题,实在是罪过呀。

很久之前就想好好的把leetcode刷一刷,直到最近这一个月重新开始,刷了一百题,真是可喜可贺啊哈哈

贴一贴我的刷题的记录

你还在犹豫刷LeetCode吗?我都刷了100道了,这份总结你必须要看一下!_第1张图片
你还在犹豫刷LeetCode吗?我都刷了100道了,这份总结你必须要看一下!_第2张图片
你还在犹豫刷LeetCode吗?我都刷了100道了,这份总结你必须要看一下!_第3张图片

基本上呢,就是用了一个月的时间,每天花上几个小时的时间去做一做题目,顺便赚一赚积分,想着能早日换个leetcode的t恤

刷题路线

  1. 探索模块里面的数据结构,比如:数、队列、栈、数组、字符串等
  2. 初级算法
  3. 终极算法
  4. 高级算法

就这些,若能全部做完,也能到两百道题,但是无奈我这些也没做完

后续做题,不推荐按照数据结构来作题,直接做就好,不要管这些,这些标签会限制住思想

几点心得

  1. 预估复杂度

题目做的稍微多一点,看到题目就应该能想到时间复杂度和空间复杂度,这一点是比较容易看出来。复杂度的优化还是值得多思考的,比如说复杂度从O(n2)到O(nlogn)的转变,这些是比较困难的,有的时候思路也不容易想出来

  1. 熟练使用各种数据结构

使用何种数据结构在做题时一定要有个大概的思考,堆、栈、队列、链表、数组、哈希表、list、set等这些数据结构的特性一定要清清楚楚,他们的特点是什么,要如何使用,用在何处

  1. 控制结构要用好

代码的结构要清楚,while、if、for这几种结构的使用要熟悉,还有break和continue,不过我不是很喜欢用break和continue,总感觉这样会破坏代码的结构,也许是我的错觉

  1. 学会分类的思想

递归和动态规划的区别是什么,递归是一种代码结构,动态规划是一种求解问题的方法,这两者不能弄混,以小见大,目的是在找问题之前一定要确保自己的问题是对的,要学会分类

  1. 总结一定不要忘

做完题目一定要做的事情就是总结好自己写的文章,不能自以为是,觉得全都会了,大家都知道,回头看自己的代码自己都不认识

叨叨两句

我做了100道题,有很多我不会做的,我只能选择去看答案,有的时候发现看了答案其实一点都不难,可是就是想不到,这点是一直存在的,我觉得这就是因为做的题目少,题目的广度有所欠缺造成的

当代码越写越多的时候,肯定是有问题了,一定要解决掉!

代码要重构,把代码要写的漂漂亮亮的才像个样子

PS: 如果有问题,随时评论,会及时回答,共同进步

你可能感兴趣的:(LeetCode刷题记录与总结)