模式1:如果是已經排好序的序列(陣列,鍊錶,或是矩陣),我們就可以用二分的變種或是雙指標策略
模式2: 如果我們需要處理n個元素中:頂部/最大/最小/最接近的k個元素時,我們就可以用堆來解決了。
模式3:如果我們需要找出給定輸入所有的組合(或是排列)的話,那我們要麼可以用遞迴的回溯法,或是迭代的bfs來解決了。
模式5:每乙個遞迴的答案,其實都可以轉化成乙個迭代解,但需要借助於棧。
模式6:如果某個問題存在o(n2)的時間和o(1)空間的暴力解,那麼它肯定存在以下兩種解決方案:1)用map或是set來實現o(n)時間和o(n)空間的複雜度方案,2)用排序來實現o(nlogn)的時間和o(1)空間
模式7:如果乙個題目需要優化(無論是最大化還是最小化),我們就需要借助於動態規劃來解了。
模式8:如果我們需要找兩個字串的公共子串,那我們就得用hashmap或是trie結構了。
模式9:如果需要在一大堆字串中查詢,那無疑trie是最好的資料結構了。
模式10:如果題目涉及到鍊錶,然後我們還不能使用額外的空間,那快慢指標肯定是需要的解法了。
LeetCode刷題 (75) 顏色分類
給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...
Leetcode刷題筆記 顏色分類
給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...
leetcode刷題 75顏色分類
給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,0 輸出 0,0,1,1,2,...