皮棉代碼
截至2016年8月22日,LintCode Online Judge上有289
問題。最近問題的數量正在增加。這是所有289
問題的分類。更多問題和解決方案,可以查看我的 LeetCode-Solutions 儲存庫。我將不斷更新完整的摘要和更好的解決方案。請繼續關注更新。
演算法
- 位元操作
- 大批
- 細繩
- 鍊錶
- 數學
- 樹
- 堆疊
- 佇列
- 堆疊
- 哈希表
- 資料結構
- 種類
- 遞迴
- 二分查找
- 廣度優先搜尋
- 深度優先搜尋
- 回溯
- 二元搜尋樹
- 動態規劃
- 貪婪的
- 物件導向設計
- 系統設計
位元操作
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
1 | A+B問題 | C++ | 複雜度(1) | 複雜度(1) | 中等的 | | |
82 | 單號 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
83 | 單號II | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
84 | 單號III | C++ | 在) | 複雜度(1) | 中等的 | CTCI | |
142 | O(1) 檢查 2 的冪 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | | |
179 | 更新位 | C++ | 複雜度(1) | 複雜度(1) | 中等的 | CTCI | |
181 | 翻轉位 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | CTCI | |
196 | 找到遺失的號碼 | C++ | 在) | 複雜度(1) | 中等的 | | |
365 | 二進制數 1 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | CTCI | |
大批
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
6 | 合併排序數組 | C++ | O(m+n) | 複雜度(1) | 簡單的 | Leet程式碼 | 兩個指針 |
8 | 旋轉字串 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
9 | 嘶嘶聲 | C++ | 在) | 複雜度(1) | 簡單的 | | |
30 | 插入間隔 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | |
31 | 分區數組 | C++ | 在) | 複雜度(1) | 中等的 | | 兩個指針 |
32 | 最小視窗子字串 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
38 | 搜尋二維矩陣 II | C++ | O(m+n) | 複雜度(1) | 中等的 | EPI | |
39 | 恢復旋轉排序數組 | C++ | 在) | 複雜度(1) | 簡單的 | | |
46 | 多數數 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
47 | 多數 II | C++ | 在) | 複雜度(1) | 中等的 | EPI | |
48 | 多數數 III | C++ | 在) | 好的) | 中等的 | EPI | |
49 | 按大小寫對字母排序 | C++ | 在) | 複雜度(1) | 中等的 | | 兩個指針 |
50 | 數組排除自身的乘積 | C++ | 在) | 複雜度(1) | 簡單的 | | |
51 | 先前的排列 | C++ | 在) | 複雜度(1) | 中等的 | | |
52 | 下一個排列 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
57 | 3 總和 | C++ | O(n^2) | 複雜度(1) | 中等的 | Leet程式碼 | 兩個指針,排序 |
58 | 4 總和 | C++ | O(n^3) | 複雜度(1) | 中等的 | Leet程式碼 | 哈希值 |
59 | 3 最接近的總和 | C++ | O(n^2) | 複雜度(1) | 中等的 | Leet程式碼 | 兩個指針,排序 |
64 | 合併排序數組 II | C++ | O(m+n) | 複雜度(1) | 簡單的 | Leet程式碼 | 兩個指針 |
100 | 從排序數組中刪除重複項 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | 兩個指針 |
101 | 從排序數組中刪除重複項 II | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | 兩個指針 |
133 | 最長的單字 | C++ | 在) | 在) | 簡單的 | | |
144 | 交錯正數和負數 | C++ | 在) | 複雜度(1) | 中等的 | | 兩個指針 |
161 | 旋轉影像 | C++ | O(n^2) | 複雜度(1) | 中等的 | Leet程式碼 | |
162 | 設定矩陣零點 | C++ | O(m * n) | 複雜度(1) | 中等的 | Leet程式碼 | |
172 | 刪除元素 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | 兩個指針 |
185 | 矩陣之字形遍歷 | C++ | O(m * n) | 複雜度(1) | 簡單的 | | |
189 | 第一個缺失的陽性 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | 哈希值 |
190 | 下一個排列 II | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
200 | 最長回文子字串 | C++ | 在) | 在) | 中等的 | Leet程式碼 | Manacher's Algorithm |
第363章 | 收集雨水 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | 兩個指針,棘手 |
第373章 | 依奇數和偶數分區數組 | C++ | 在) | 複雜度(1) | 簡單的 | | 兩個指針 |
第374章 | 螺旋矩陣 | C++ | O(m * n) | 複雜度(1) | 中等的 | Leet程式碼 | |
第381章 | 螺旋矩陣 II | C++ | O(n^2) | 複雜度(1) | 中等的 | Leet程式碼 | |
第382章 | 三角形計數 | C++ | O(n^2) | 複雜度(1) | 中等的 | | 兩個指針 |
第383章 | 裝最多水的容器 | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | 兩個指針 |
第388章 | 排列序列 | C++ | O(n^2) | 在) | 中等的 | Leet程式碼 | |
第389章 | 有效數獨 | C++ | O(9^2) | 奧(9) | 簡單的 | Leet程式碼 | |
404 | 子數組和 II | C++ | O(nlogn) | 在) | 難的 | | 兩個指針,二分查找 |
405 | 子矩陣和 | C++ | O(m * n^2) | 氧(米) | 難的 | | 哈希值 |
406 | 最小子數組總和 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | 兩個指針,二分查找 |
第539章 | 移動零 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | 兩個指針 |
細繩
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
13 | strStr | C++ | O(n+k) | 好的) | 簡單的 | Leet程式碼 | KMP Algorithm |
53 | 反轉字串中的單字 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | |
54 | 字串轉整數(atoi) | C++ | 在) | 複雜度(1) | 難的 | Leet程式碼 | |
55 | 比較字串 | C++ | 在) | O(c) | 簡單的 | | |
78 | 最長公共前綴 | C++ | 在) | 複雜度(1) | 中等的 | | |
157 | 獨特的角色 | C++ | 在) | 複雜度(1) | 簡單的 | CTCI | |
158 | 兩個字串是字謎詞 | C++ | 在) | 複雜度(1) | 簡單的 | | |
171 | 字謎詞 | C++ | O(n * klogk) | 氧(米) | 簡單的 | LeetCode、EPI | |
212 | 空間置換 | C++ | 在) | 複雜度(1) | 簡單的 | | |
407 | 加一 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
第408章 | 新增二進位 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
第415章 | 有效回文 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
第417章 | 有效號碼 | C++ | 在) | 複雜度(1) | 難的 | Leet程式碼 | 自動機 |
第420章 | 數數並說 | C++ | O(n * 2^n) | O(2^n) | 簡單的 | Leet程式碼 | |
第422章 | 最後一個字的長度 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
第524章 | 左墊 | C++ | O(p+n) | 複雜度(1) | 簡單的 | Leet程式碼 | |
鍊錶
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
16 | 合併兩個排序列表 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | |
35 | 反向鍊錶 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | |
36 | 反向鍊錶二 | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | |
96 | 分區列表 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
98 | 排序列表 | C++ | O(nlogn) | O(logn) | 中等的 | LeetCode、EPI | |
99 | 重新排序列表 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
102 | 鍊錶循環 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
103 | 鍊錶循環II | C++ | 在) | 複雜度(1) | 難的 | Leet程式碼 | |
104 | 合併 k 個排序列表 | C++ | O(n * logk) | 複雜度(1) | 中等的 | Leet程式碼 | 堆、分而治之 |
105 | 使用隨機指標複製列表 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
106 | 將排序列表轉換為二元搜尋樹 | C++ | 在) | O(logn) | 中等的 | LeetCode、EPI | |
112 | 從排序清單中刪除重複項 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | |
113 | 從排序清單中刪除重複項 II | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | |
166 | 列表中倒數第 N 個節點 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
167 | 兩個列表總和 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
170 | 旋轉列表 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
173 | 插入排序列表 | C++ | O(n^2) | 複雜度(1) | 簡單的 | Leet程式碼 | |
174 | 從清單末尾刪除第 N 個節點 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
223 | 回文鍊錶 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
第372章 | 刪除單鍊錶中間的節點 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | CTCI | |
380 | 兩個鍊錶的交集 | C++ | O(m+n) | 複雜度(1) | 簡單的 | Leet程式碼 | |
450 | k 組中的反向節點 | C++ | 在) | 複雜度(1) | 難的 | Leet程式碼 | |
第451章 | 成對交換節點 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
第452章 | 刪除連結列表元素 | C++ | 在) | 複雜度(1) | 幼稚的 | Leet程式碼 | |
511 | 交換鍊錶中的兩個節點 | C++ | 在) | 複雜度(1) | 中等的 | | |
樹
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
7 | 二元樹序列化 | C++ | 在) | 哦) | 中等的 | | |
85 | 在二元搜尋樹中插入節點 | C++ | 哦) | 複雜度(1) | 簡單的 | | |
88 | 最低共同祖先 | C++ | 在) | 哦) | 中等的 | EPI | |
175 | 反轉二元樹 | C++ | 在) | 哦) | 簡單的 | Leet程式碼 | |
第442章 | 實現特里樹 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | 特里樹 |
堆疊
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
12 | 最小堆疊 | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | |
40 | 透過兩個堆疊實作佇列 | C++ | O(1),攤銷 | 在) | 中等的 | EPI | |
66 | 二元樹前序遍歷 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | Morris Traversal |
67 | 二元樹中序遍歷 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | Morris Traversal |
68 | 二元樹後序遍歷 | C++ | 在) | 複雜度(1) | 簡單的 | LeetCode、EPI | Morris Traversal |
122 | 直方圖中最大的矩形 | C++ | 在) | 在) | 難的 | LeetCode、EPI | 升序堆疊 |
126 | 最大樹 | C++ | 在) | 在) | 難的 | | 降序堆疊 |
第367章 | 表達式樹構建 | C++ | 在) | 在) | 難的 | | |
第368章 | 表達評估 | C++ | 在) | 在) | 難的 | | |
第369章 | 將表達式轉換為波蘭表示法 | C++ | 在) | 在) | 難的 | | |
370 | 將表達式轉換為逆波蘭表示法 | C++ | 在) | 在) | 難的 | | |
第421章 | 簡化路徑 | C++ | 在) | 在) | 中等的 | Leet程式碼 | |
第423章 | 有效括號 | C++ | 在) | 在) | 簡單的 | Leet程式碼 | |
第424章 | 評估逆波蘭表示法 | C++ | 在) | 在) | 中等的 | Leet程式碼 | |
第473章 | 新增和搜尋單字 | C++ | O(分鐘(n,h)) | O(分鐘(n,h) | 中等的 | Leet程式碼 | 特里樹 |
510 | 最大矩形 | C++ | O(m * n) | 在) | 難的 | Leet程式碼 | 升序堆疊 |
528 | 展平嵌套列表迭代器 | C++ | 在) | 哦) | 中等的 | Leet程式碼 | |
佇列
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
第362章 | 滑動視窗最大值 | C++ | 在) | 好的) | 難的 | EPI | 雙端隊列,棘手 |
堆疊
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
4 | 醜數二 | C++ | 在) | 複雜度(1) | 中等的 | CTCI | 二元搜尋樹、堆 |
81 | 資料流中位數 | C++ | O(nlogn) | 在) | 難的 | EPI | 二元搜尋樹、堆 |
130 | 堆化 | C++ | 在) | 複雜度(1) | 中等的 | | |
第364章 | 收集雨水 II | C++ | O(m * n * (logm + logn)) | O(m * n) | 難的 | | BFS、堆、棘手 |
518 | 超醜陋的數字 | C++ | O(n*k) | O(n+k) | 中等的 | Leet程式碼 | 二元搜尋樹、堆 |
哈希表
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
56 | 2 總和 | C++ | 在) | 在) | 中等的 | Leet程式碼 | |
124 | 最長連續序列 | C++ | 在) | 在) | 中等的 | LeetCode、EPI | |
128 | 哈希函數 | C++ | 在) | 複雜度(1) | 簡單的 | | |
129 | 重新散列 | C++ | 在) | 在) | 中等的 | | |
138 | 子數組和 | C++ | 在) | 在) | 簡單的 | | |
186 | 一條線上的最大點數 | C++ | O(n^2) | 在) | 中等的 | Leet程式碼 | |
211 | 字串排列 | C++ | 在) | 複雜度(1) | 簡單的 | | |
第384章 | 沒有重複字元的最長子串 | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | |
第386章 | 最多包含 K 個不同字元的最長子串 | C++ | 在) | 在) | 中等的 | | |
第432章 | 找到有向圖中的弱連通分量 | C++ | O(nlogn) | 在) | 中等的 | | 聯合查找 |
第434章 | 島嶼數量 II | C++ | 好的) | 好的) | 難的 | | 聯合查找 |
第488章 | 快樂數 | C++ | 好的) | 好的) | 簡單的 | Leet程式碼 | |
第547章 | 兩個數組的交集 | C++ | O(m+n) | O(分鐘(m,n)) | 簡單的 | EPI、LeetCode | 兩個指針,二分查找 |
第548章 | 兩個數組的交集 II | C++ | O(m+n) | O(分鐘(m,n)) | 簡單的 | EPI、LeetCode | 兩個指針,二分查找 |
資料結構
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
134 | LRU緩存 | C++ | 複雜度(1) | 好的) | 難的 | LeetCode、EPI | 列表、哈希 |
數學
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
2 | 尾隨零 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | Leet程式碼 | |
3 | 數字計數 | C++ | 複雜度(1) | 複雜度(1) | 中等的 | CTCI | |
114 | 獨特的路徑 | C++ | O(分鐘(m,n)) | 複雜度(1) | 簡單的 | 力扣、CTCI | 大學預科項目,數學 |
163 | 獨特的二元搜尋樹 | C++ | 在) | 複雜度(1) | 中等的 | CTCI | DP,數學, Catalan Number |
180 | 二進位表示 | C++ | 複雜度(1) | 複雜度(1) | 難的 | CTCI | |
197 | 排列索引 | C++ | O(n^2) | 複雜度(1) | 簡單的 | | |
198 | 排列指數II | C++ | O(n^2) | 在) | 中等的 | | |
第394章 | 硬幣排成一行 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | | |
第411章 | 格雷碼 | C++ | O(2^n) | 複雜度(1) | 中等的 | Leet程式碼 | |
第413章 | 反轉整數 | C++ | 複雜度(1) | 複雜度(1) | 中等的 | Leet程式碼 | |
第414章 | 兩個整數相除 | C++ | 複雜度(1) | 複雜度(1) | 中等的 | Leet程式碼 | |
第418章 | 整數轉羅馬 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
第419章 | 羅馬數字轉整數 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
第428章 | 戰俘(x,n) | C++ | 複雜度(1) | 複雜度(1) | 中等的 | Leet程式碼 | |
第445章 | 餘弦相似度 | C++ Python | 在) | 複雜度(1) | 簡單的 | | |
第517章 | 醜陋的數字 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | CTCI、LeetCode | |
種類
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
5 | 第 K 個最大元素 | C++ | O(n) ~ O(n^2) | 複雜度(1) | 中等的 | EPI | 兩個指針,快速排序 |
80 | 中位數 | C++ | 在) | 複雜度(1) | 簡單的 | EPI | |
139 | 最接近的子數組和 | C++ | O(nlogn) | 在) | 中等的 | | 種類 |
143 | 顏色排序 II | C++ | 在) | 複雜度(1) | 中等的 | | |
148 | 顏色排序 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
156 | 合併間隔 | C++ | O(nlogn) | 複雜度(1) | 簡單的 | LeetCode、EPI | |
184 | 最大數量 | C++ | O(nlogn) | 複雜度(1) | 中等的 | Leet程式碼 | |
第366章 | 斐波那契 | C++ | 在) | 複雜度(1) | 簡單的 | | |
第379章 | 重新排序數組以建構最小數量 | C++ | O(nlogn) | 複雜度(1) | 中等的 | Leet程式碼 | |
第387章 | 最小的差異 | C++ | O(最大(m, n) * log(最小(m, n))) | 複雜度(1) | 中等的 | | 兩個指針,二分查找 |
第399章 | 螺帽和螺栓問題 | C++ | O(nlogn) | O(logn) | 中等的 | | 快速排序 |
400 | 最大間隙 | C++ Python | 在) | 在) | 難的 | Leet程式碼 | 桶排序 |
第463章 | 整數排序 | C++ | O(n^2) | 複雜度(1) | 簡單的 | | 插入排序、選擇排序、冒泡排序 |
第464章 | 整數排序 II | C++ | O(nlogn) | 在) | 簡單的 | | 歸併排序、堆排序、快速排序 |
507 | 搖擺排序 II | C++ | 平均O(n) | 複雜度(1) | 中等的 | Leet程式碼 | 三分區 |
508 | 擺動排序 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
遞迴
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
22 | 展平列表 | C++ | 在) | 哦) | 簡單的 | | |
72 | 透過中序和後序遍歷構造二元樹 | C++ | 在) | 在) | 中等的 | LeetCode、EPI | |
73 | 從先序與中序遍歷構造二元樹 | C++ | 在) | 在) | 中等的 | LeetCode、EPI | |
93 | 平衡二元樹 | C++ | 在) | 哦) | 簡單的 | Leet程式碼 | |
94 | 二元樹最大路徑和 | C++ | 在) | 哦) | 中等的 | Leet程式碼 | |
95 | 驗證二元搜尋樹 | C++ | 在) | 哦) | 中等的 | Leet程式碼 | |
97 | 二元樹的最大深度 | C++ | 在) | 哦) | 簡單的 | Leet程式碼 | |
131 | 建築輪廓 | C++ Python | O(nlogn) | 在) | 難的 | EPI | 排序,二元樹排序 |
140 | 快速供電 | C++ | O(logn) | 複雜度(1) | 中等的 | | |
155 | 二元樹的最小深度 | C++ | 在) | 哦) | 簡單的 | Leet程式碼 | |
164 | 獨特的二元搜尋樹 II | C++ | O(n * 4^n / n^(3/2)) | 在) | 中等的 | Leet程式碼 | |
177 | 將排序數組轉換為具有最小高度的二元搜尋樹 | C++ | 在) | O(logn) | 簡單的 | Leet程式碼 | |
201 | 線段樹構建 | C++ | 在) | 哦) | 中等的 | | 線段樹、二元樹 |
第202章 | 線段樹查詢 | C++ | 哦) | 哦) | 中等的 | | 線段樹、二元樹 |
203 | 線段樹修改 | C++ | 哦) | 哦) | 中等的 | | 線段樹、二元樹 |
205 | 間隔最小數量 | C++ | 建構樹: O(n) ,查詢: (h) | 哦) | 難的 | | 線段樹、二元樹 |
206 | 區間和 | C++ | 建構樹: O(n) ,查詢: O(logn) | 在) | 難的 | | 線段樹,BIT |
207 | 區間總和II | C++ | 建構樹: O(n) ,查詢: O(logn) ,修改: O(logn) | 在) | 難的 | | 線段樹,BIT |
245 | 子樹 | C++ | O(m * n) | 複雜度(1) | 簡單的 | | Morris Traversal |
第247章 | 線段樹查詢二 | C++ | 哦) | 哦) | 難的 | | 線段樹、二元樹 |
248 | 數較小數 | C++ | 建構樹: O(n) ,查詢: O(logn) | 哦) | 中等的 | | 線段樹、二元樹 |
第371章 | 透過遞歸列印數字 | C++ | 在) | 在) | 中等的 | | |
第375章 | 克隆二元樹 | C++ | 在) | 哦) | 簡單的 | | |
第378章 | 將二元搜尋樹轉換為雙向鍊錶 | C++ | 在) | 哦) | 中等的 | | |
第439章 | 線段樹建構 II | C++ | 在) | 哦) | 中等的 | | 線段樹、二元樹 |
第453章 | 將二元樹展平為鍊錶 | C++ | 在) | 哦) | 簡單的 | Leet程式碼 | |
第469章 | 相同的二元樹 | C++ | 在) | 哦) | 簡單的 | | |
第532章 | 反向對 | C++ | O(nlogn) | 在) | 中等的 | 計數自身之前較小數字的變體 | 位,歸併排序 |
第535章 | 入室強盜 III | C++ | 在) | 哦) | 中等的 | Leet程式碼 | |
二分查找
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
14 | 目標的第一個位置 | C++ | O(logn) | 複雜度(1) | 簡單的 | | |
28 | 搜尋二維矩陣 | C++ | O(logm + logn) | 複雜度(1) | 簡單的 | Leet程式碼 | |
60 | 搜尋插入位置 | C++ | O(logn) | 複雜度(1) | 簡單的 | Leet程式碼 | |
61 | 搜尋範圍 | C++ | O(logn) | 複雜度(1) | 中等的 | Leet程式碼 | |
62 | 在旋轉排序數組中搜尋 | C++ | O(logn) | 複雜度(1) | 中等的 | Leet程式碼 | |
63 | 在旋轉排序數組 II 中搜索 | C++ | O(logn) | 複雜度(1) | 中等的 | Leet程式碼 | |
65 | 兩個排序數組的中位數 | C++ | O(log(min(m, n))) | 複雜度(1) | 難的 | LeetCode、EPI | 棘手 |
74 | 第一個壞版本 | C++ | O(logn) | 複雜度(1) | 中等的 | | |
75 | 尋找峰值元素 | C++ | O(logn) | 複雜度(1) | 中等的 | Leet程式碼 | |
76 | 最長遞增子序列 | C++ | O(nlogn) | 在) | 中等的 | CTCI | |
141 | 平方 (x) | C++ | O(logn) | 複雜度(1) | 簡單的 | Leet程式碼 | |
159 | 尋找旋轉排序數組中的最小值 | C++ | O(logn) | 複雜度(1) | 中等的 | Leet程式碼 | |
160 | 求旋轉排序數組 II 中的最小值 | C++ | O(logn) | 複雜度(1) | 中等的 | Leet程式碼 | |
183 | 木切 | C++ | O(nlogL) | 複雜度(1) | 中等的 | | |
390 | 尋找峰值元素 II | C++ Java Python | O(m+n) | 複雜度(1) | 難的 | | |
第437章 | 抄書 | C++ | O(nlogp) | 複雜度(1) | 難的 | 紫外線714 | |
廣度優先搜尋
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
69 | 二元樹層次順序遍歷 | C++ | 在) | 在) | 中等的 | Leet程式碼 | 廣度FS |
70 | 二元樹層次順序遍歷二 | C++ | 在) | 在) | 中等的 | Leet程式碼 | 廣度FS |
71 | 二元樹之字形層序遍歷 | C++ | 在) | 在) | 中等的 | Leet程式碼 | 廣度FS |
120 | 字梯 | C++ | O(n * d) | O(d) | 中等的 | Leet程式碼 | 廣度FS |
121 | 字梯II | C++ | O(n * d) | O(d) | 難的 | Leet程式碼 | BFS、回溯 |
127 | 拓撲排序 | C++ | O(|V|+|E|) | O(|E|) | 中等的 | | 深度優先搜尋、廣度優先搜索 |
137 | 複製圖 | C++ | O(|V|+|E|) | O(|V|) | 中等的 | | 廣度FS |
176 | 圖中兩個節點之間的路由 | C++ | 在) | 在) | 中等的 | | 深度優先搜尋、廣度優先搜索 |
178 | 圖有效樹 | C++ | O(|V| + |E|) | O(|V| + |E|) | 中等的 | Leet程式碼 | |
第431章 | 找到無向圖中的連通分量 | C++ | 在) | 在) | 中等的 | | 廣度FS |
第477章 | 週邊地區 | C++ | O(m * n) | O(m+n) | 中等的 | Leet程式碼 | |
深度優先搜尋
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
90 | 康和II | C++ | O(k * C(n, k)) | 好的) | 中等的 | | |
第376章 | 二元樹路徑和 | C++ | 在) | 哦) | 簡單的 | Leet程式碼 | |
第433章 | 島嶼數量 | C++ | O(m * n) | O(m * n) | 簡單的 | Leet程式碼 | 深度FS |
第480章 | 二元樹路徑 | C++ | O(n*h) | 哦) | 簡單的 | Leet程式碼 | |
回溯
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
15 | 排列 | C++ | O(n * n!) | 在) | 中等的 | LeetCode、EPI | |
16 | 排列二 | C++ | O(n * n!) | 在) | 中等的 | LeetCode、EPI | |
17 號 | 子集 | C++ | O(n * 2^n) | 複雜度(1) | 中等的 | Leet程式碼 | |
18 | 子集II | C++ | O(n * 2^n) | 複雜度(1) | 中等的 | Leet程式碼 | |
33 | N-皇后區 | C++ | O(n * n!) | 在) | 中等的 | LeetCode、EPI | |
34 | N-皇后區 II | C++ | O(n * n!) | 在) | 中等的 | LeetCode、EPI | |
123 | 單字搜尋 | C++ | O(m * n * l) | O(l) | 中等的 | Leet程式碼 | |
132 | 單字搜尋 II | C++ | O(m * n * l) | O(l) | 難的 | | 特里樹、DFS |
135 | 組合總和 | C++ | O(k * n^k) | 好的) | 中等的 | Leet程式碼 | 深度FS |
136 | 回文分區 | C++ | O(2^n) | 在) | 簡單的 | LeetCode、EPI | |
152 | 組合 | C++ | O(k * n^k) | 好的) | 中等的 | LeetCode、EPI | |
153 | 組合總和 II | C++ | O(k * C(n, k)) | 好的) | 中等的 | Leet程式碼 | 深度FS |
第425章 | 電話號碼的字母組合 | C++ | O(n * 4^n) | 在) | 中等的 | Leet程式碼 | |
第426章 | 恢復IP位址 | C++ | 複雜度(1) | 複雜度(1) | 中等的 | Leet程式碼 | |
第427章 | 產生括號 | C++ | O(4^n / n^(3/2)) | 在) | 中等的 | Leet程式碼 | |
二元搜尋樹
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
11 | 二元搜尋樹中的搜尋範圍 | C++ | 在) | 哦) | 中等的 | EPI | |
86 | 二元搜尋樹迭代器 | C++ | 複雜度(1) | 哦) | 難的 | Leet程式碼 | |
87 | 刪除二元搜尋樹中的節點 | C++ | 哦) | 哦) | 難的 | | |
249 | 計算其之前的較小數字 | C++ | O(nlogn) | 在) | 難的 | | BST、BIT、分而治之、歸併排序 |
360 | 滑動視窗中位數 | C++ | O(nlogw) | O(w) | 難的 | | BST,棘手 |
第391章 | 天空中的飛機數量 | C++ | O(nlogn) | 在) | 簡單的 | | 二元搜尋樹、堆 |
401 | 排序矩陣中的第 K 個最小數 | C++ | O(klog(min(m, n, k))) | O(min(m,n,k)) | 中等的 | | 二元搜尋樹、堆 |
動態規劃
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
20 | 骰子總和 | C++ | O(n^2) | 在) | 難的 | | |
29 | 交錯字串 | C++ | O(m * n) | O(分鐘(m,n)) | 中等的 | EPI | |
43 | 最大子數組 III | C++ | O(k * n) | O(k * n) | 難的 | | |
77 | 最長公共子序列 | C++ | O(m * n) | O(分鐘(m,n)) | 中等的 | | |
79 | 最長公共子串 | C++ | O(m * n) | O(分鐘(m,n)) | 中等的 | | |
89 | 總和 | C++ | O(k * n * t) | O(n * t) | 難的 | | |
91 | 最低調整成本 | C++ | O(k * n * t) | 好的) | 中等的 | | |
92 | 背包 | C++ | O(m * n) | 氧(米) | 簡單的 | | |
107 | 斷詞 | C++ | O(n * l^2) | 在) | 中等的 | LeetCode、EPI | |
108 | 回文分區 II | C++ | O(n^2) | 在) | 中等的 | LeetCode、EPI | |
109 | 三角形 | C++ | 在) | 在) | 簡單的 | LeetCode、EPI | |
110 | 最小路徑和 | C++ | O(m * n) | O(分鐘(m,n)) | 簡單的 | LeetCode、EPI | |
111 | 爬樓梯 | C++ | O(logn) | 複雜度(1) | 簡單的 | Leet程式碼 | |
115 | 獨特路徑II | C++ | O(m * n) | O(分鐘(m,n)) | 簡單的 | 力扣、CTCI | 大學預科項目,數學 |
118 | 不同的子序列 | C++ | O(m * n) | 氧(米) | 中等的 | Leet程式碼 | DP |
119 | 編輯距離 | C++ | O(m * n) | O(分鐘(m,n)) | 中等的 | 力扣、CTCI | DP |
125 | 背包二號 | C++ | O(m * n) | 氧(米) | 中等的 | | |
149 | 買賣股票的最佳時機 | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | |
150 | 買賣股票的最佳時機 II | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | |
151 | 買賣股票的最佳時機 III | C++ | 在) | 複雜度(1) | 中等的 | LeetCode、EPI | |
154 | 正規表示式匹配 | C++ | O(m * n) | 氧(米) | 難的 | Leet程式碼 | DP、遞迴 |
168 | 氣球爆裂 | C++ | O(n^3) | O(n^2) | 中等的 | Leet程式碼 | |
191 | 最大乘積子數組 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
第392章 | 入室搶劫者 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
第393章 | 買賣股票的最佳時機 IV | C++ | O(k * n) | 好的) | 難的 | LeetCode、EPI | |
第395章 | 硬幣排成一排 II | C++ | 在) | 複雜度(1) | 中等的 | | |
第396章 | 硬幣排成一行 III | C++ | O(n^2) | 在) | 難的 | | |
第397章 | 最長連續遞增子序列 | C++ | 在) | 複雜度(1) | 簡單的 | | |
第398章 | 最長連續遞增子序列 II | C++ | O(m * n) | O(m * n) | 難的 | | |
403 | 連續子數組和 II | C++ | 在) | 複雜度(1) | 中等的 | EPI | |
第430章 | 打亂字串 | C++ | O(n^4) | O(n^3) | 難的 | Leet程式碼 | |
第435章 | 郵局問題 | C++ | O(k * n^2) | 在) | 難的 | 北京大學1160 | |
第436章 | 最大平方 | C++ | O(m * n) | 在) | 中等的 | Leet程式碼 | |
第512章 | 解碼方式 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
513 | 完全平方數 | C++ | O(n * sqrt(n)) | 在) | 中等的 | Leet程式碼 | |
514 | 油漆柵欄 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
515 | 油漆屋 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
516 | 油漆屋 II | C++ | O(n*k) | 好的) | 難的 | Leet程式碼 | |
第534章 | 入室強盜 II | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
第564章 | 背包六 | C++ | O(n * t) | O(t) | 中等的 | | |
貪婪的
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
41 | 最大子數組 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
42 | 最大子數組 II | C++ | 在) | 在) | 中等的 | | |
44 | 最小子數組 | C++ | 在) | 複雜度(1) | 簡單的 | | |
45 | 最大子數組差異 | C++ | 在) | 在) | 中等的 | | |
116 | 跳躍遊戲 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
117 | 跳躍遊戲二 | C++ | 在) | 複雜度(1) | 中等的 | Leet程式碼 | |
182 | 刪除數字 | C++ | 在) | 在) | 中等的 | | |
第187章 | 加油站 | C++ | 在) | 複雜度(1) | 簡單的 | Leet程式碼 | |
192 | 通配符匹配 | C++ | O(m+n) | 複雜度(1) | 難的 | Leet程式碼 | 貪心、DP、遞歸 |
第402章 | 連續子數組和 | C++ | 在) | 複雜度(1) | 中等的 | EPI | |
第412章 | 糖果 | C++ | 在) | 在) | 難的 | Leet程式碼 | 貪婪的 |
第552章 | 創建最大數量 | C++ | O(k * (m + n + k)) ~ O(k * (m + n + k^2)) | O(m + n + k^2) | 難的 | Leet程式碼 | 貪心,DP |
物件導向設計
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
204 | 辛格頓 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | | |
208 | 賦值運算子重載(僅限 C++) | C++ | 在) | 複雜度(1) | 中等的 | | |
第496章 | 玩具廠 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | | |
第497章 | 形狀工廠 | C++ | 複雜度(1) | 複雜度(1) | 簡單的 | | |
第498章 | 停車場 | C++ | O(n * m * k) | O(n * m * k) | 難的 | CTCI | OO 設計、Pimpl 慣用法、智慧指針 |
系統設計
# | 標題 | 解決方案 | 時間 | 空間 | 困難 | 標籤 | 筆記 |
---|
501 | 迷你推特 | C++ | O(克洛古) | O(t + f) | 中等的 | | |