演算法圖鑑
資料結構 · 5 個細項

Array & Hashing陣列與雜湊

陣列用連續記憶體換取 O(1) 的位置存取,雜湊表用雜湊函數換取 O(1) 的鍵值存取。這兩個結構是幾乎所有程式的地基,也是很多面試題的第一個工具。

為什麼要學 Array & Hashing

現實中的應用
資料庫的快取與 Session

使用者 ID 對應到登入狀態、URL 對應到快取內容,都是雜湊表。Redis 的核心就是一個大雜湊表。

→ 對應課程:Hash Table
「這個字母出現幾次」

統計字元頻率、判斷兩個字是不是同字母異序、找出重複的元素,雜湊表把每個查詢都變成 O(1)。

→ 對應課程:Hash Set / Map Patterns
報表的區間加總

問「第 1000 到 5000 天的營收總和」,先算一次前綴和,之後每個問題都只要一次減法。

→ 對應課程:Prefix Sum
影像與棋盤

圖片是二維陣列,旋轉 90 度、螺旋走訪、在棋盤上找連通格子,都是二維陣列操作。

→ 對應課程:Matrix

細項

5