重练算法(代码随想录版) day50 - 图论part1
今日刷题量:2
当前刷题总量:175
Easy: 63
Mid: 100
Hard: 12
Day50
基础理论
图论基础
- 图 = 顶点 + 边
- 分类:有向图、无向图、有环图、无环图、带权图、非带权图
- 存储方式:邻接表 vs 邻接矩阵
DFS即一条路走到头,走不通再回头
- 典型问题:枚举所有可能、路径问题、回溯问题
- 代码框架:
点击查看代码
void dfs(int u) {
visited[u] = true;
for (int v : graph[u]) {
if (!visited[v]) {
dfs(v);
}
}
}
BFS即一层一层向外扩撒
- 典型问题:最短路径、最少步数、层序问题
- 代码框架:
点击查看代码
queue<int> q;
q.push(start);
visited[start] = true;
while (!q.empty()) {
int u = q.front(); q.pop();
for (int v : graph[u]) {
if (!visited[v]) {
visited[v] = true;
q.push(v);
}
}
}
常用思想及练习题目
797.所有可能的路径(mid):https://leetcode.cn/problems/all-paths-from-source-to-target/
98.可达路径(mid):https://kamacoder.com/problempage.php?pid=1170

浙公网安备 33010602011771号