數組基礎css
數組是最基礎的數據結構,特色是O(1)時間讀取任意下標元素,常常應用於排序(Sort)、雙指針(Two Pointers)、二分查找(Binary Search)、動態規劃(DP)等算法。順序訪問數組、按下標取值是對數組的常見操做。html
相關LeetCode題:git
905. Sort Array By Parity 題解github
922. Sort Array By Parity II 題解算法
977. Squares of a Sorted Array 題解數組
1150. Check If a Number Is Majority Element in a Sorted Array 題解數據結構
448. Find All Numbers Disappeared in an Array 題解dom
26. Remove Duplicates from Sorted Array 題解3d
滑動窗口
一前一後指針遍歷數組,這種方法叫作滑動窗口(Sliding Window),也是遍歷數組的經常使用方式。更多關於滑動窗口詳見:
算法與數據結構基礎 - 滑動窗口(Sliding Window)
相關LeetCode題:
1040. Moving Stones Until Consecutive II 題解
1151. Minimum Swaps to Group All 1's Together 題解
Matrix
二維數組即矩陣(Matrix),也是常見的數據結構,能夠用於表示圖。
相關LeetCode題:
Prefix sum
Prefix sum是數組、矩陣應用的一個技巧,其有助於下降求解一些子數組問題的時間複雜度。
相關LeetCode題:
548. Split Array with Equal Sum 題解
209. Minimum Size Subarray Sum 題解
1074. Number of Submatrices That Sum to Target 題解
HashTable
數組與HashTable結合使用能夠產生一些「火花」、下降一些問題求解的時間複雜度。例如用HashTable爲數組元素計數,或用HashTable爲數組元素創建反向索引。更多關於HashTable詳見:
相關LeetCode題: