Menu
CoddyTech

Find if Path Exists in Graph

简单图并查集python iconjava iconcpp iconc iconjs icon+10

一个无向图有 n 个节点,编号从 0 到 n-1。edges 中的每个条目 [u, v] 都连接节点 u 和 v,你可以沿任一方向经过这条边。如果你可以沿着边从 source 到达 destination,则返回 true,否则返回 false。节点始终可以到达自身。

函数

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
节点数量
edgesinteger-2d-array
边,每条边都是一对相连的节点 [u, v]
sourceinteger
起始节点
destinationinteger
你想要到达的节点
返回值boolean
某条路径是否连接源点和目标点

约束条件

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [u, v],其中 0 ≤ u, v ≤ n-1 且 u ≠ v
  • 没有边会重复出现,无论方向如何。
  • 0 ≤ source, destination ≤ n-1

示例

输入
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
输出
true
解释
路径 0 → 1 → 2 → 3 使用了三条边,因此节点 3 是可达的。节点 4 和 5 构成了一个独立部分,路径不需要经过那里。
challenge icon

进阶

假设边是单向的:[u, v] 只允许你从 u 走到 v。三种方法中,哪些仍然可行?你需要对它们做哪些修改?

重置代码
def validPath(n, edges, source, destination):
    # 在这里编写代码

测试 #1

测试 #2

参数

n = 6
edges = [[0, 1], [1, 2], [2, 3], [4, 5]]
source = 0
destination = 3

预期输出

true