算法與數據結構基礎 - 數組(Array)

數組基礎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  題解數據結構

896. Monotonic Array  題解app

448. Find All Numbers Disappeared in an Array  題解dom

26. Remove Duplicates from Sorted Array  題解3d

88. Merge Sorted Array  題解

189. Rotate Array  題解

941. Valid Mountain Array  題解

31. Next Permutation  題解

 

滑動窗口

一前一後指針遍歷數組,這種方法叫作滑動窗口(Sliding Window),也是遍歷數組的經常使用方式。更多關於滑動窗口詳見:

算法與數據結構基礎 - 滑動窗口(Sliding Window)

 

相關LeetCode題:

1040. Moving Stones Until Consecutive II  題解

1151. Minimum Swaps to Group All 1's Together  題解

 

Matrix

二維數組即矩陣(Matrix),也是常見的數據結構,能夠用於表示圖。

 

相關LeetCode題:

867. Transpose Matrix  題解

566. Reshape the Matrix  題解

695. Max Area of Island  題解

835. Image Overlap  題解

48. Rotate Image  題解

54. Spiral Matrix  題解

59. Spiral Matrix II  題解

 

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詳見:

算法與數據結構基礎 - 哈希表(Hash Table)

 

相關LeetCode題:

380. Insert Delete GetRandom O(1)  題解

560. Subarray Sum Equals K  題解

954. Array of Doubled Pairs  題解

相關文章
相關標籤/搜索