記性差的人如何有效率地用 LeetCode 刷題?我跳槽用的筆記模板分享以及圖文教學

Last updated on March 9, 2021

加入臉書粉絲團或分享給朋友吧~

我自己是非常討厭刷 Leetcode 題的,但對於大部分職涯早期的軟體工程師而言,刷題實在是很難避免的宿命。因此在刷題的過程中,我自製了下面這個 Google Sheet 來紀錄自己刷題的進度,以便隨時回頭複習。後來也分享給不少正要跳槽的朋友,因此這篇就來介紹一下如何使用這個表格來輔助自己刷題,文中也有放下載的連結,希望能幫助到更多需要的人!

Leetcode 的網站上題目已經快兩千題了💀,常常寫完後面就忘了以前寫過的。而我自己又是記性非常差的人,所以非常依賴各種工具來幫我記各種大小事,而這個表格就是在我那年準備跳槽時《Google Facebook Quora LinkedIn AirBnb 面試經驗分享》的產物。從結果來看,它發揮了超凡的價值

先來個截圖

Leetcode template example

表格下載連結

表格簡介

欄位名稱意義範例使用技巧
Company所有你有興趣的公司名稱,跟題目無關,只跟 Column F 有關。如果有遇到沒在這個列表的公司,就把它夾在最下方。這樣在 Companies 這個欄位就可以選擇它。
#本題題號5
Title題目名稱Longest Palindromic Substring
Time時間複雜度N^2有時候一題有多種解法,就都塞進來。
Space空間複雜度N^2同上
Companies出過這題的公司Amazon, Facebook可以利用我已經建好的 Google Apps Script 來選公司,不需要自己打字(見下面的教學)
Importance自己覺得這題的重要程度,滿分十分9很主觀的一個指標,通常越多公司考過我會覺得越重要。
Familarity自己對這題的熟悉程度,滿分十分8記錄一下自己對這題有多熟,如果超過八分那我可能短期就不會再寫它
Attempts自己寫過這題的次數3單純紀錄一下自己花了多少時間在這題上
Date最後寫這題的日期。2/2/2021記得用快捷鍵 cmd + ;
Date Gap距離上次寫這題過了幾天3不需要填,會自動從 Date 推算出來。如果超過兩個月沒寫的話就會變成紅色,那時就可以考慮回頭複習一下。
Hint給自己的提示DP想不出來的時後就偷看。可以想像如果自己是面試官看到面試者做不出這題時,會想給他怎樣的提示。這可以有助於自己複習時如果題目想不出來可以不用急著去看詳解,因為可能自己就只差臨門一腳了!
欄位介紹

剛寫完的 Leetcode 題目

每當自己寫完一題時,就趁著記憶還很新鮮,把時間複雜度空間複雜度填一下。也可以在 Hint 寫下這題的關鍵點在哪,以便未來複習時看。也記得更新一下 Date 欄位,讓自己知道上次寫這題是何時

如何填入多個公司

如果已經知道這題曾經被某間公司問過,記得在 Companies 那個欄位寫下那家公司,以便未來自己複習用。這個欄位是可以多選的,從上面的 Scripts -> Multi-select 點開一個右側的輔助工具,就可以打勾來選了。

Leetcode template setup
記得要點開這個並且等它跑一下

等它讀取完畢後,右側就會出現這個小工具,並且會顯示你在第一個 Company column 提供的所有公司名稱。你只要選擇那些出過這題的公司,然後點 Set ,就可以把這些值填進去該欄位。

  • 第一次點的話需要授權一下,以後就不需要啦!如果擔心我放壞壞 🎩 的程式碼的話可以自己去檢查 Tools -> Script editor
  • 如果你發現這個表是空的(沒有任何公司,只有按鈕),那麼首先要確認你的欄位是選在 Companies 下面的某一欄,確定後就點擊 Refresh validation,就應該可以看到啦!
Leetcode template example of multiple companies
右側會出現這個工具,勾選完點 Set 就可以把值填進去
小問題

這個表格有個小問題就是 Companies 那個欄位如果選擇兩個以上的公司,就會有個煩人的警告在那。請大家就不要理它,大概只能等 Google 改版後才有機會把它消除。

順便吐槽一下,Google Sheet 本身是不支援用這種多選的方式來填格子的,為此我特地花了一兩小時研究怎麼用 Google Apps Script 搭配網路上的範例來達到這件事。Google 你加油好嗎?👀

  • 附上最後參考的 Link,記得把評論區中提到的 V8 engine 修掉,不然是跑不動的。

複習寫過的 Leetcode 題目

如果是平常的複習,就看哪些題目比較重要 (Importance column) 而且自己已經太久沒寫過了 (Date Dap column)。利用這點,就可以快速過濾掉那些不重要的題目,把時間發揮得更有效率。

而如果今天是已經準備要面試某家特定公司 (比方說 Google ),則可以利用 Companies 這個欄位來挑出那些網友分享過的 Google 面試題,以此來重點複習這些題目。當然平常也要記得去看看別人近期的面經,搜集準確的資料!

如何利用 Hint

當複習時想不起這題該怎麼做時,不要急著去翻答案,先看一下自己上次留下的 Hint。通常看完就會有概念了,畢竟常常就只差臨門一腳就能想到解法。如果發現看完 Hint 還是想不起來,就去看答案吧!但這次寫完這題後也記得要更新一下 Hint ,以便下次複習可以用!

結語

希望這個工具能幫助到更多有需要的人,也希望幾年後當我又想跳槽時我還看得懂自己的筆記😞。我在準備跳槽面試時每天會用到無數次這張表格🗓,看到都快背下來了。祝大家早日離開刷題的輪迴🙂,找到理想的工作!如果使用上有任何問題或建議也歡迎在下面留言噢~

你覺得呢?來留言一起討論吧!

加入臉書粉絲團或分享給朋友吧~