2022/05/09

Coding Interview 就是刷好刷滿刷爆 LeetCode 就會上?

我家可愛貓貓鎮樓,最後她一個都沒選;
畢竟她靠可愛就可以過活了,還是由奴才來好好工作賺罐罐錢吧。


之前在台灣面試時一直都沒怎麼遇過需要 coding interview,
而且我也一直對於在別人面前寫程式感到害羞,
還以為自己可以就這樣逃過 coding interview 的關卡。

殊不知在英國面試時就常常遇到 
coding interview,雖然有時候會是 online test, assignment,
但果要進比較大的公司,coding interview 幾乎是必備。

還記得我第一次  coding interview 時,
面試開始時我想說我會寫我會寫欸然後我就直接寫完了,
還以為自己表現不錯題目有解出來 : )

結果得到 feedback 是 "感覺面試者沒有想跟面試官溝通"。
起先覺得困惑,後來才知道原來 coding interview 不是只是解題就好,
部分也是因為我自己這部份沒做好資料查詢。

所以痛定思定後,上網詳盡搜尋了相關資訊包括如何準備、面試時需要從哪些方面下手,並運用範例寫下 coding interview 過程,同時也請 MANGA 經過面試官訓練的朋友幫忙檢查內容。

我試圖把 coding interview 的流程寫成可以以較有結構式的方式執行;
這篇會分為平時練習時、面試前和面試過程中去解釋。

簡單輕鬆十分鐘學會 Stack & Queue (堆疊 & 佇列) 刷 LeetCode

一、Stack & Queue

1.1 基本觀念介紹

這裡講的 stack 和 queue,就是和 event loop 裡會用到的 call stack 和 callback queue 的基礎資料結構。

如果不是很清楚 event loop 是什麼,可以看這篇

Stack 和 Queue 常常用 array 或 linked list,但沒有限定,只要能實作出該資料結構即可。



1.1.1 Stack

Last in, First out (LIFO)

最後一個進去,第一個出來。

比如書籍堆疊起來,最後一本堆上去的會第一本先被拿走;


最下面 bottom 是第一個被放入的 frame,然後 frame 被一個一個堆起來 (push),

如果要把 frame 抽走,只能從最上方開始拿 (pop)。