谈谈刷题姿势

谈谈刷题姿势

今天突然看到开了 Leetcode 刷题社区,心头很是激动。我是今年开始刷题的,因为也是今年才看到支持用 php 刷题了,毕竟是目前我吃饭的语言。所以那时候就开始计划 github 上建一个仓库开始了刷题之路,我刷的不多,基本上每周也就三四题,偶尔多个一两题。边刷别做解题思路。记录下来,方便后面查看,先放张图看看这半年 Leetcode 提交的记录吧

谈谈刷题姿势

谈谈步骤

其实我一开始傻乎乎的从第一道题开始刷,顺序刷。如果你现在也是这样的,请停止这样的行为,毫无意义。理由有两点。其一,中间的难度参差不齐,容易有挫败感,打击自信心,如果你还是一个完美主义者,那么 GG。你可能会卡在一道题目上好几天....。其二,题型千变万化,可能这题是一个二叉树的题型,下一题就是一个 DFS 类似这样的。这样的话,其实对于你来说,毫无意义,你甚至在后一天忘记了前一天刷的是哪一种类型的题目。正确的姿势我觉得应该是根据下图点击 tags,根据标签去刷,先筛选标签,然后再从标签里面的 easy 开始刷,easy 刷多了,再慢慢开始 Medium直到你是种子选手了,直接随手 Hard

谈谈刷题姿势

还有一点,毕竟大多数的人都不是 ACM 出生的,可能一开始对着 easy 的题目看半天,也不知道咋么动手,不要觉得自己不行,很正常的,我一开始也是完全不会,这种东西都是后天刷题练出来的,毕竟天才总是少数,刻意练习,享受刷题的乐趣,才能达到信手拈来的地步。当然我承认学习能力的差距是非常大的,有些人善于总结,发现规律,能快速定位问题。自然刷题的境界会越来越高。这条路还很长。

谈谈总结

刷题的过程最好自己做记录,题目并不是刷一遍就行了,相信我,开始的时候,过几天,你再回头看自己刷过的题目,你可能就会,不,是肯定会全忘了,你忘了思路,忘了解题步骤,所以,记录是非常有必要的,后续最好过个半个月,重新回来看自己之前的记录。先试着解,解不出来了,再看下之前的思路。还有一点非常重要,要善于总结,很重要。对于题解,我们不应该是背下来的,而是应该去理解类似题型的解题思路,借助的思想。这道题用的是二分,这不就是一道动态规划的题型嘛。类似这种,善于总结题型,因为只有你真正理解内在的思想,相似的题目你也就会解了。这个过程中,你会接触到很多基础的关于数据结构和算法的。不懂的地方可以先补充一下知识,然后针对一块知识点,开始刷题,加深印象,不仅刷到题了,还能掌握数据结构和算法。它不香吗?如果能达到看一道题目 就知道解题思路,知道哪种思路的解释最优解,那就很厉害了。

谈谈后续

千万不要满足于一种解法。要明白 O(n2) 的运行时间和 O(n) 是不一样的,同样的空间上 O(n)O(1) 也是不一样的。自己会解之后,打开对应题目的 discuss 看看国内外大佬的思路。有时候没文化的我可能会喊一句,卧槽,还能这么解,多用用英文版的,毕竟一个面向全世界,一个面向国内。资源的大小不用我说了吧。

仓库地址

我的php刷题总结都在这个仓库,可以参考下:Leetcode-php

本作品采用《CC 协议》,转载必须注明作者和本文链接

吴亲库里

本帖由系统于 16小时前 自动加精
讨论数量: 3

感谢分享 :grinning:一起加油吧 :smile:

1个月前 评论
likunyan

昨晚看到社区开了这个,才去做第一题 :speak_no_evil:,第一次想到的是 unset

4周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!