先說結論,我覺得還是要刷
我覺得 LeetCode 他不單單只是一個考題,他是一個對於公司來說相對低成本可以初步驗證你的程式寫作能力的工具,而且透過這些題目,可以讓面試官很快速的跟面試者共同解決一個程式題目,而不用花大量的時間來解釋各種 Domain 的名詞跟定義,用最短的時間來達到面試的目的
所以,我覺得在刷 LeetCode 的時候,理解題目並且知道怎麼寫作,這個是基本(這些我覺得在現在的 AI 時代,會相對輕鬆,你可以請 AI 解釋,或是請他做一個網頁用動畫的方式來解釋其中的原理),我覺得更要把重點放在解釋為什麼你會這麼解,用虛擬碼加上文字,配合說明,讓跟你一同協作的同事理解你的思路,在有限的時間內,讓他理解你的思路,最後把答案寫出來,更甚至是讓面試官看到你可能有哪些思考盲點,這樣他才有機會可以給你提示,引導你把答案完成
我覺得面試的重點不是要把你考倒,而是要找一個能夠一起共事的同事,而這段 LeetCode 的面試流程,就有點像是你們在一同工作一個小時的感覺,所以比起埋頭苦幹,我覺得更重要的是要讓面試官有想要跟你一起工作的念頭
所以接下來我想介紹的是練習的方法
在解題的過程,我主要可以分成幾個部分
我覺得有先透過虛擬碼溝通,再來實際寫程式有個好處,因為你主要是想要做表達,所以有些寫程式會出錯的小細節(比如沒有分號,單字拼錯,或是臨時發現少一個變數)都可以用簡單的示意文字來表示,就可以把時間放在溝通實作邏輯的對錯,而不是花時間在解一些很小的錯誤
而且當你虛擬碼完成後,把實際的 code 寫出來就只是翻譯的問題,這個部分只要你熟悉這個語言,應該就可以順順的寫出來
而練習時,會建議可以嘗試邊寫邊講,當你把你的想法講出來,面試官才更有機會可以知道你在想什麼,他才有機會可以救你,或是你才有機會讓面試官知道你的邏輯跟解法,不然他就只能看你的程式能不能動,一番兩瞪眼,就沒有那種寫數學考券,寫算式給一半分數的機會了
而難易程度,我個人會推薦剛開始,先從 LeetCode 75 開始,這些題目可以帶你把常見的資料格式跟解法都走過一遍,我個人覺得會是一個相對有效率的方法,而且這些題目也是 YT 上最多人分享的題目,你才有機會可以找到資源來學習
AI 使用程度
[x] 無
[ ] AI 進行校稿
[ ] AI 主筆