LeetCode - Prologue
开个新坑,LeetCode。
第一次刷题应该是2020年年初,我还没有认识到我的失败的时候(接下来的那个Spring是我漫长失败的开始,暂且不表)。当时就是做着玩的,刷了大概50题TOP 100。感觉好难,题解和黑魔法一样(其实就是因为数据结构和算法啥都没学过)。当时还认真地记录下来我的解法,然而过了一个月全忘光了。
第二次刷题就快进到今年暑假开头那会儿。功利性比较大,因为要准备突如其来的阿里面试所以花了一个礼拜突击剑指Offer。后来证明突击也没卵用。
今天,10月1日国庆节,a good day to start doing something. 所以老八我再次挑战一把… LC。
总结之前的教训:
刷得太杂,深度不够。 走马观花下来啥都记不住。
死磕。 一个是死磕难题,怎么写都写不对还嗯写。还有一个是自己想的垃圾解法还要写下来,反向训练了属于是。
这次我列出了个人认为比较适合自己的计划:
按照数据结构,逐个攻破。 初步按照数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构这个顺序来刷,打好基础。hard题咱先放一边哈。
刷题过程。 先自己想5-10min,包括要用的数据结构和用到的算法。如果觉得自己的想法可能是最优解就开始写,不然马上看题解。看懂之后马上自己写,力求AC。
刷题之后。 建几个收藏夹。秒想秒过的不需要收藏。“多想一下”文件夹指的是主要思路是对的,但细节比较tricky。“注意细节”文件夹指的是边界条件等等非受迫性失误的情况。“想不出来”文件夹指的是完全没有思路。
语言问题。 用过C++和Java刷题,但是我懒。所以Python。
在基础打好之后,接下来可以:
做hard题。
参加周赛。
想看自己有没有天赋,边学边做三个月leetcode,参加周赛,只做出来一道就是没天赋,靠非常人的努力填补还能有点希望;能做出来两道就是有希望;一道做不出来劝退劝退劝退。
— 知乎用户
彳亍。希望到时候能做出两道。