許多科技公司在面試時都會有「白板題」的技術考題,也帶動近年來軟體圈瀰漫著一股「LeetCode 刷題」的風潮。面試者會把 LeetCode 視為面試準備的考古題,但我一直覺得如果只是為了面試而刷題反而失去的寫程式的初衷。因此這一次我打算從一題一題的 LeetCode 題目中,深入淺出地拆解各種面向的解法。並且試圖從 Python 與 JavaScript 兩個程式語言間轉換,探索超越程式語言之外更純粹的邏輯思考。
700. Search in a Binary Search Tree 昨天提到鏈結串列(Linked List)的題目,今天就挑了一題「樹(Tree)」的題...
144. Binary Tree Preorder Traversal 今天挑選的是一題「二元樹(Binary Tree)」,二元樹相對於二元搜尋樹來說條件相...
題組回顧與觀念統整 在前三天的刷題實戰中,我們一起完成了這三個經典的「資料結構」題: LeetCode 雙刀流: 206. Reverse Linked...
再探鏈結串列與樹結構 在前三天的刷題實戰中,我們一起實作了線性的鏈結串列和非線性的樹相關的題目。其實你仔細回顧一下,你會發現其實這三題的解法都有一些共同的觀點...
102. Binary Tree Level Order Traversal 今天一樣延續著「二元樹(Binary Tree)」的題目,其實樹相關的議題可以算...
Stack 與 Queue 的相互實作 先看一下題目描述 225. Implement Stack using Queues Implement a las...
題組回顧與觀念統整 Stack 和 Queue 絕對是資料結構中不可以錯過的一種容器,不只用於資料結構中這兩個字更廣泛出現在整個電腦科學的應用當中,從記憶體的...
24. Swap Nodes in Pairs 前面我們著重在「資料結構」的議題上做了不少的討論,從大家的熟悉的陣列開始,算是走過一輪常見的資料結構。接下來,...
236. Lowest Common Ancestor of a Binary Tree 今天一樣想繼續深入討論關於「遞迴(Recursion)」的議題,遞迴...
90. Subsets II 今天挑選了「90. Subsets II」的題目,這是一道類似「排列組合」的練習題。排列組合的基本想法就是把所有的可能窮舉出來,...