Jetzt loslegen. Gratis!
oder registrieren mit Ihrer E-Mail-Adresse
Leetcode von Mind Map: Leetcode

1. sliding window(two pointers)

1.1. fixed size

1.2. non-fixd size

1.2.1. 最長 subarray

1.2.2. 最短 subarray

1.2.3. #subarray

1.3. 越短越合法(求最長/最大)

1.4. 越長越合法(求最短/最小)

1.5. #subarray

2. binary search

2.1. search by value

2.1.1. minimize max value

2.1.1.1. 讓 >= x 的都符合要求

2.1.2. maximize min value

2.1.2.1. 讓 <= x 的都符合要求

2.1.3. 二分間接值

2.1.4. 第 k 大

2.1.4.1. guess x → st. nums[i] >= x 的 i 至少有 k 個 (同 minimize max value)

3. monotonic stack

3.1. 矩形

3.2. 貢獻法

3.3. 最小字典序

4. 網格

4.1. DFS

4.1.1. connected component 的個數 & 大小

4.1.2. BFS

4.1.2.1. 最短距離!!!!

4.1.2.1.1. 818 race car

4.1.3. 01 BFS

4.1.3.1. edge weight 只有 0, 1

4.1.4. Dijkstra

5. bit manipulation

5.1. simple

5.1.1. find duplicate

5.2. xor

5.3. and, or

5.4. logtrick

5.5. 拆位、貢獻法

5.6. 試算

5.7. 恆等

6. graph

6.1. DFS

6.1.1. #connected components

6.1.2. cycle

6.2. BFS

6.2.1. 最短路徑 (edge = 1)

6.3. topological sort

6.4. topological sort + dp

6.5. shortest path

6.5.1. single source

6.5.1.1. dijkstra

6.5.2. multi sources

6.5.2.1. floyd

6.6. minimun spanning tree (Union Find)

7. DP

7.1. 爬樓梯

7.2. 打家劫舍

7.3. max subarray

7.3.1. kadane

7.4. 網格 dp

7.5. 01 背包

7.6. 完全背包

7.7. 分組背包

7.8. LCS

7.9. LIS

7.9.1. 可用 binary search 解

7.10. 劃分型 dp

7.11. state dp

7.11.1. 股票

7.11.2. play the piano

7.12. 線性 dp

7.12.1. 與前後綴轉移有關,通常回傳 f[-1] or f[0]

7.12.2. 1d dp

7.12.3. 不相交區間

7.12.4. 子數組 dp

7.12.5. 合法 subsequence

7.12.6. 子矩形

7.12.7. 多維

7.13. 區間 dp

7.13.1. 左右端點不斷縮小,通常回傳 f[0][n-1]

7.13.2. i 倒敘枚舉,j要正序枚舉

7.13.3. 最長回文 subsequence

7.13.4. 區間

7.13.4.1. trianglize a polygan

7.14. 狀壓 dp

7.14.1. 相鄰無關

7.14.2. 相鄰相關

7.14.3. 旅行商

7.14.4. 子集

7.14.5. sos dp

7.15. digit dp

7.15.1. 創建一個數

7.15.2. ab 兩數相加 = c,求 a,b 的組合個數

7.16. dp 優化

7.16.1. prefix sum

7.16.2. monotonic stack

7.16.3. monotonic queue

7.17. 其他

7.17.1. 圖 dp

7.17.2. 博弈 dp

7.17.3. 期望值 dp

8. greedy

8.1. 從最小/大的元素開始 greedy

8.1.1. 通常與元素順序無關 → sort()

8.2. 單序列配對

8.3. 雙序列配對

8.4. 從最左/右開始 greedy

8.5. 劃分型 dp

8.6. 先枚舉再貪心

8.7. 交換論證法

8.7.1. 證明不會後悔

8.8. 相鄰不同

8.9. 反悔 greedy

8.10. 區間 greedy

9. backtracking

9.1. 子集型

9.1.1. 選 or 不選

9.1.2. 枚舉選哪個

9.2. 劃分型

9.2.1. 把分割線看成 "選 or 不選"

9.2.2. 本質上也是子集型

9.3. 組合型

9.3.1. 本質上也是子集

9.4. 排列型

9.4.1. 全排列

9.4.2. n 皇后

10. intervals

10.1. sort by start time

10.1.1. min number of intervals to cover the whole range

10.2. sort by end time

10.2.1. max number of intervals that are non-overlapping (remove as less intervals as possible)

10.3. line sweep

10.3.1. 本質上是 diff arrry

11. 常用 data structure

11.1. 枚舉右,維護左

11.1.1. hash map

11.1.2. mono queue

11.2. 枚舉中間

11.2.1. for 3 ~ 4 個變量

11.3. prefix sum

11.3.1. prefix sum + hash table

11.3.2. prefix sum + sorted list

11.3.3. 2d prefix sum

11.4. 距離和

11.5. prefix xor sum

11.6. diff array

11.7. stack

11.7.1. stack

11.7.2. monotonic stack

11.8. queue

11.8.1. queue

11.8.2. mono queue

11.9. heap/priority queue

11.9.1. 第 k 大/小

11.9.2. 反悔 heap

11.9.3. lazy delete heap

11.9.4. 對頂 heap

11.9.5. tasks scheduling

11.10. trie

11.11. union find

11.11.1. union find

11.11.2. gcd union find

11.12. BIT / segment tree

11.12.1. sgement tree (無更新)

11.12.2. lazy segment tree (有區間更新)

11.13. 逆序對

11.14. 離線算法

12. 字符串

12.1. KMP

12.2. Z 函數