資料結構 · 5 個細項
Array & Hashing陣列與雜湊
陣列用連續記憶體換取 O(1) 的位置存取,雜湊表用雜湊函數換取 O(1) 的鍵值存取。這兩個結構是幾乎所有程式的地基,也是很多面試題的第一個工具。
為什麼要學 Array & Hashing
現實中的應用細項
5 篇#演算法複雜度難度狀態
01Array & Dynamic Array 陣列與動態陣列連續記憶體,存取 O(1),中間插入要搬移用在:所有語言的 list / vector存取 O(1)、插入 O(n)空間 O(n)可學習02Prefix Sum 前綴和預先累加,區間和變成一次減法用在:報表區間加總、子陣列和問題建 O(n)、查 O(1)空間 O(n)可學習03Hash Table 雜湊表雜湊函數、碰撞處理、負載因子用在:快取、Session、資料庫索引、去重平均 O(1)空間 O(n)可學習04Hash Set / Map Patterns 計數與去重Two Sum、Group Anagrams 這類「用空間換時間」的模式用在:頻率統計、配對查找O(n)空間 O(n)可學習05Matrix 二維陣列旋轉、轉置、螺旋走訪、四方向移動用在:影像處理、棋盤遊戲、網格地圖O(mn)空間 O(mn)可學習