演算法圖鑑
演算法 · 5 個細項

Searching & Two Pointers搜尋與雙指標

從最單純的線性搜尋,到利用有序性的二分搜尋,再到雙指標與滑動視窗這兩個把 O(n²) 壓成 O(n) 的陣列技巧。這些是面試與日常工程中出現頻率最高的一組工具。

為什麼要學 Searching & Two Pointers

現實中的應用
git bisect 找出壞掉的 commit

一千個 commit 裡哪一個引入 bug?每次測中間那個,十次就找到。這就是二分搜尋,資料只要「有序」就能用。

→ 對應課程:Binary Search
「最少要多快才來得及」

Koko 吃香蕉、貨船最小載重:答案本身有單調性(越快一定越來得及),就能對答案二分,每次驗證一下可不可行。

→ 對應課程:Binary Search on Answer
監控系統的「過去 5 分鐘平均」

資料一直進來,視窗一直往前滑。滑動視窗讓每筆資料只被加一次、減一次,不用每次重算整個區間。

→ 對應課程:Sliding Window
有序陣列裡找兩數之和

一左一右兩個指標往中間夾,比暴力的雙迴圈少一個 n。很多陣列題都是這個模式的變形。

→ 對應課程:Two Pointers

細項

5