如何正确高效地使用LeetCode?
正确高效地使用LeetCode可参考如下方法:
按Tag来刷,链表、二叉树、回溯、深度宽度优先遍历、图、贪心、动规、数组、哈希表……每个tag由easy到hard,每道题先自己思考,不会的参考了一个开源的解答或者参考Discuss或者博客。开始的时候自己独立思考的时间比较长,后来不会的题目就马上看解答。
一般题目解法有多种,这时候最好尝试一下其他的做法,至少要知道思路。比如有关图的题目就会有DFS和BFS两种解法。Discuss里一般都会有高质量的解答。
关键是每道题都要弄明白。一开始用IDE,跑出正确结果,再在线默写代码。后来写的多了,直接在线写代码了。这是一个自然的过程,做得多了就有“手感”了。
要想有效率的刷题就要对题目进行选择。就是说你不能每天看到什么题目就刷什么题目,而是要有计划地对题目进行先后排序。当时我刷题是在Lintcode上面进行的,就是先利用他的分类功能对题目进行类型分类,再根据难易进行排序,一段时间就专注在一种题目类型上。
然后根据自己的水平,从容易或者中等难度开始刷起,一点点增加难度值。这样子的话更容易对一种类型的题目进行掌握,刷题不管速度还是效率都会有所提高。
总结很重要
人是健忘的动物,如果你刷完题就把题目扔了,肯定没多久就忘得七七八八了,所以每做完一种类型的题目,甚至是做完一天的题目,就要参照标准答案对题目进行梳理整合总结,然后把这种总结记录下来,因为我用的Lintcode里面就有自带的笔记功能。
所以我当时就会每天直接在lintcode里面记录自己的总结结果,然后以后每隔一段时间就回顾一下,强化一下记忆,这样你刷过的题目才能真正为你所有,不会边刷边忘,效率低下。
最后就是一定要坚持刷,每天给自己强行安排指标,这样才能保证自己一直处在编程的状态下。这不但能养成编程刷题的习惯让刷题过程变得没那么痛苦,而且一直处在编程状态下本身就会让你的编程水平处在一个逐渐上升的过程中。
2024-09-04 广告