查詢:o(1)
插入、刪除:o(n)
應用場景:1. 頻繁插入和刪除,鍊錶優於陣列。 2. 不知道有多少個元素需要新增。
查詢:o(n)
插入、刪除:o(1)
陣列和鍊錶的區別以及應用場景;假如有5萬個數,有序,需要查詢某乙個數,問需要使用陣列還是鍊錶?
第一組(原地移動元素問題):leetcode283. 移動零
、leetcode27. 移除元素
、leetcode26. 刪除排序陣列中的重複項
、leetcode80. 刪除排序陣列中的重複項 ii
第二組(排序演算法思路的應用):leetcode75. 顏色分類、leetcode88. 合併兩個有序陣列、leetcode215. 陣列中的第k個最大元素
第三組(對撞指標):leetcode167. 兩數之和 ii - 輸入有序陣列
、leetcode125. 驗證回文串
、leetcode344. 反轉字串
、leetcode345. 反轉字串中的母音字母
、leetcode11. 盛最多水的容器
第四組(滑動視窗):leetcode209. 長度最小的子陣列、leetcode3. 無重複字元的最長子串、leetcode438. 找到字串中所有字母異位詞、leetcode76. 最小覆蓋子串
第一組:leetcode206. 反轉鍊錶
、leetcode92. 反轉鍊錶 ii
第二組:leetcode83. 刪除排序鍊錶中的重複元素、leetcode86. 分隔鍊錶、leetcode328. 奇偶鍊錶、leetcode2. 兩數相加、leetcode445. 兩數相加 ii
第三組(虛擬頭節點):leetcode203. 移除鍊錶元素
、leetcode82. 刪除排序鍊錶中的重複元素 ii
、leetcode21. 合併兩個有序鍊錶
第四組:leetcode24. 兩兩交換鍊錶中的節點
、leetcode25. k 個一組翻轉鍊錶
、leetcode147. 對鍊錶進行插入排序
、leetcode148. 排序鍊錶
第五組:leetcode237. 刪除鍊錶中的節點
第六組(雙指標):leetcode19. 刪除鍊錶的倒數第n個節點
、leetcode61. 旋轉鍊錶
、leetcode143. 重排鍊錶
、leetcode234. 回文鍊錶
40講系列7 貪心演算法
貪心 greedy 演算法 在對問題求解時,總是做出在當前看來是最好的選擇。由於貪心演算法每一次操作都需要取最大值或最小值,所以通常需要對陣列排序。適用greedy 的場景 問題能夠分成子問題來解決,子問題的最優解能遞推到最終問題的最優解。如果不能使用貪心演算法,只需要舉出反例即可。貪心選擇性質的證...
1 基礎 陣列鍊錶框架
下面通過一張圖讓我們看清陣列和鍊錶是如何儲存集合中的資料的 1 2無須為表示表中元素之間的邏輯關係增加額外的儲存空間 可以方便地隨機訪問表中任一位置的元素。缺點是 插入和刪除運算不方便,除表尾的位置外,在表的其他位置上進行插入或刪除操作都必須移動大量元素,其效率較低 由於陣列要求占用連續的儲存空間,...
40講系列16 布隆過濾器
場景 如果遇到網頁黑名單系統 垃圾郵件過濾系統 爬蟲的 判重系統等題目,又看到系統容忍一定程度的失誤率,但是對空間要求比較嚴格,那麼大概率考布隆過濾器的知識。乙個布隆過濾器精確地代表乙個集合,並可以精確判斷乙個元素是否在集合中。到底有多精確取決於具體的設計,但完全正確是不可能的。優點 空間效率和查詢...