LeetCode 筆記 - 75. Sort Colors
解析經典的「荷蘭國旗問題」(Dutch National Flag Problem)。本文介紹如何在不使用內建排序的情況下,利用三個指標在一次遍歷中完成 0、1、2 的原地排序,達成最優的 O(n) 時間複雜度。
解析經典的「荷蘭國旗問題」(Dutch National Flag Problem)。本文介紹如何在不使用內建排序的情況下,利用三個指標在一次遍歷中完成 0、1、2 的原地排序,達成最優的 O(n) 時間複雜度。
分析 LeetCode 經典困難題「正規表達式匹配」。本文探討如何處理特殊的句點與星號字元,利用動態規劃 (Dynamic Programming) 逐步構建匹配矩陣,解決字串間複雜的模式比對邏輯,是訓練 DP 思維的必經之路。
解析 LeetCode 3468 題,計算符合特定邊界條件的「複製陣列」數量。本文探討如何透過差分性質將問題轉化為區間交集運算,並利用動態更新的上下界在 O(n) 時間內求得所有可能的陣列組合數。
詳解 LeetCode 31 題:尋找字典序中的下一個排列方式。本文拆解演算法的三大步驟:從後方尋找遞減點、尋找替換數值並進行反轉,幫助讀者理解如何在 O(n) 的時間與 O(1) 的空間內完成排列切換。
解析 LeetCode 經典字串解碼題目。本文利用堆疊 (Stack) 資料結構處理巢狀重複結構 `k[encoded_string]`,逐步將字串展開並組合,詳細說明處理數字、中括號與字母的狀態切換邏輯。
詳解 LeetCode 困難題「接雨水」。本文探討如何運用雙指標 (Two Pointer) 演算法,從兩端向中間逼近並動態更新左右側的最大高度,從而計算出每個位置能儲存的水量,達成 O(n) 時間與 O(1) 空間的最優解。
介紹合併兩個排序鏈結串列 (Linked List) 的基本解法。本文運用雙指標法搭配虛擬頭節點 (Dummy Head) 技巧,簡化合併邏輯並保持結果的排序特性,是初學者掌握鏈結串列操作的必備經典題目。
介紹移除排序鏈結串列中重複節點的基本操作。本文透過單次遍歷與相鄰節點比對,簡單明瞭地去重並保持鏈結結構,是學習鏈結串列 (Linked List) 指標跳轉技術的入門必備練習。
分析如何從排序鏈結串列中徹底移除所有重複出現過的節點。本文運用虛擬頭節點 (Dummy Head) 技巧與雙迴圈判定邏輯,確保結果中僅保留原始串列中只出現過一次的元素,優化指標操作細節。
挑戰 LeetCode 307 題,實作具備數值更新功能的區塊和查詢資料結構。本文詳解線段樹 (Segment Tree) 的建立、單點更新與區塊查詢邏輯,分析其如何在大數據量下維持高效的運算性能,是進階資料結構的實戰筆記。