刷題是應徵流程的一環,但並不是每一家公司都要,通常小公司比較不會有刷題的環節,可以把刷題想成是考大學,越多人想去的地方分數就要越高,大公司收到的履歷很多,通常會先由人事直接寄刷題連結,工程部門的主管從後台看到分數跟解題過程再請人事發面試邀請,以節省時間以及鑒別出基本功。
但也就像考大學的時候唸的書,刷這些題對我們 client 端的工作沒什麼幫助,就算真的有用,需要用到的時候也忘得差不多了。但,這是 client 端的狀況,因為每一個裝置都是獨立且分散的,即使有用到演算法也只要算一次就好,但後端、資料科學等領域,需要大量運算,那就比較重要了,如果寫的好,就能剩下設備成本。
這裡有 HiSKIO 做的 LeetCode 經驗調查 可以了解刷題的輪廓。
GitHub 上搜尋 LeetCode 就有一堆解題的 repo,有解釋題目、說明思路、甚至還有動畫教學的,這邊推薦:Leetcode 题解,因為他的分類很清晰,雖然不是講解的最詳細,但可以參考其他 repo 的講解。
刷題這種東西,刷一題忘一題,刷多就亂了,我們可以用 GitBook 來做自己的理解筆記。
你可能會覺得這個方法很糟糕,但就我的例子來說,我的記憶力比較差,經常會忘記解題邏輯跟結論,比方說一個題目我想了幾種解法且都試過,但下次遇到的時候,忘記結論是什麼,所以我會直接看別人的解題,參考的是思路,而不是該題的步驟,這樣未來才能類推。
另外,題目不是只要解開就好,還有要求正確性跟效率,我們並沒有那麼多時間完整建構自己的思路,還是先接受正規教育吧。
主要都是刷 easy、medium 就夠了。
另外,刷題數量不是很重要,重點是熱門題型一定要熟悉。
平常練習的時候就一邊把自己的思路給說出來,可以做到幾個效果: