演算法 · 5 個細項
Searching & Two Pointers搜尋與雙指標
從最單純的線性搜尋,到利用有序性的二分搜尋,再到雙指標與滑動視窗這兩個把 O(n²) 壓成 O(n) 的陣列技巧。這些是面試與日常工程中出現頻率最高的一組工具。
為什麼要學 Searching & Two Pointers
現實中的應用細項
5 篇#演算法複雜度難度狀態
01Linear Search 線性搜尋一個一個看,無序資料唯一的選擇用在:小資料、無序資料、只找一次O(n)空間 O(1)可學習02Binary Search 二分搜尋lower bound / upper bound 的邊界寫法用在:git bisect、字典查詢、版本相容性測試O(log n)空間 O(1)可學習03Binary Search on Answer 二分答案答案有單調性就能二分,配合可行性檢查用在:分配問題、最小化最大值O(n log R)空間 O(1)可學習04Two Pointers 雙指標對撞指標與同向指標用在:有序陣列配對、去重、回文判斷O(n)空間 O(1)可學習05Sliding Window 滑動視窗固定長度與可變長度兩種用在:串流統計、限流(rate limit)、最長不重複子字串O(n)空間 O(k)可學習