Skip to content

LeetCode 解題紀錄目錄


寫在開頭

LeetCode 是什麼?

LeetCode 是一個收集了各式各樣程式題目的網站,雖然說是各式各樣的題目,但大致上是面向著『面試白板題』導向的題目;換言之,有許多的程式設計師在就職前,都免不了反覆刷 LeetCode 上的題目。

當然,我個人也希望能夠藉由反覆練習 LeetCode 網站上的題目來幫助自己能夠順利地面試,於是便將自己解題時的想法、作法,通通一並記錄在這裡,權當作個參考。

另一方面,有時候解題時只是胡亂試出來罷了。若能整理自己的想法後紀錄下來 —— 雖不敢說就此融會貫通,但想必是多少真正了解了這個題目。


解題的指標

在 LeetCode 中解題,有著非常明顯的兩個指標:

  • 使用的時間
  • 使用的空間

與此同時,這兩種指標的呈現方式是與之前提交過的使用者們做比較,所以程式的效率好不好,基本是一目瞭然的。

不過講是這樣講,我卻仍舊覺得這兩種指標僅僅是個參考,也不要過度執著於此。畢竟有時候,會遇到執行效率很快、但是記憶體使用率卻超大的時候;反之,也會有著執行效率稱不上最快、但卻能節省不少記憶體使用空間的例子。要用哪種架構,也是端看程式設計時的需求做選擇

除此之外,還有『可讀性』的問題存在,如果今天一項產品的程式碼並不存在時間複雜度空間複雜度的瓶頸,並且還有著後續交接的預定,那麼,我們該犧牲可讀性、完全一昧地追求最高效能嗎?

以上的例子有些偏頗,不過,我覺得所謂『優化最貴的資源』就是這麼一回事吧!最貴的資源,在不同的時空背景下,都可能有所變化的。

可貴的,終究是在漫長的解題過程中,慢慢鍛鍊出來的『解決問題的思考能力』。

與所有要一同刷題的朋友,共勉之。


目錄

Tags:

Leave a Reply