想成為一名優秀的 Android 工程師,卻在面試時被白板題難倒?想學習用 Kotlin 解決各種資料結構與演算法的問題,並提升你的面試技巧?
本系列將帶你一起練習 30 道 Android 面試高頻題,教你如何寫出清晰、高效的程式碼。這些題目都是我從國內外知名軟體公司,如 PayPay、LinePay 等,收集整理而來。
你將學習如何拆解問題,分析時間和空間複雜度,並運用適當的解題策略。本系列涵蓋了各種基礎和進階的題型,讓你能夠應付任何面試挑戰。
不要再讓白板題嚇跑你,快來加入本系列,讓自己成為一名更優秀的 Android 工程師吧!
動態規劃 (DP) 解題思路 費波那契數列的定義是 ,,並且 對於任意 成立。 這個遞迴關係可以用動態規劃來實現,只需要記錄 和 作為初始值,然後不斷...
複製到陣列後使用雙指標法 解題思路 有兩種常見的 List 實作方式,分別是 ArrayList 和 LinkedList。它們在存儲值的方法上有什麼區別呢?...
暴力窮舉 解題思路 一個直覺的想法是,對陣列中的每個數字 x,檢查是否有另一個數字等於 target - x。 為了避免重複配對,我們只需在陣列中,位於 x...
雙堆疊 解題思路 我們使用兩個 stack 來模擬一個 queue 的操作。 一個 stack 叫做 input stack,用來存放新加入的資料。另一個 s...
模擬加法 解題思路 兩個鏈結串列的數字是從個位開始存儲的,所以我們可以直接按位相加。 我們同時遍歷兩個鏈結串列,把每一位的數字和進位值相加,得到當前位數的和。...
破題 這道題目要求我們判斷是否存在從起點到終點的有效路徑。這可以轉化為求圖中兩個頂點是否連通的問題。我們可以使用廣度優先搜尋 (BFS)、深度優先搜尋 (DF...
破題 這道題目中的平衡二元樹定義為:二元樹中每個節點的左右子樹高度差的絕對值不超過1。根據定義,一棵二元樹是平衡二元樹,當且僅當其所有子樹也都是平衡二元樹。因...
遞迴 解題思路 這道題目要求我們判斷一棵二元樹是否是二元搜尋樹。 二元搜尋樹的特性是,對於任意一個節點,它的左子樹上所有節點的值都小於它,而它的右子樹上所有節...
破題 首先,我們知道二元搜尋樹的一個重要特性是其中序走訪結果為遞增序列。因此,如果我們得到一個遞增陣列,我們可以確定這個陣列可以作為某個二元搜尋樹的中序走訪結...
廣度優先搜尋 (BFS) 解題思路 我們可以使用廣度優先搜尋來解決這個問題。最簡單的方法是使用一個 Pair (node, level) 來表示狀態,其中 n...