1971. Find if Path Exists in Graph

发布时间:2023年12月18日

1971. Find if Path Exists in Graph

There is a?bi-directional?graph with?n?vertices, where each vertex is labeled from?0?to?n - 1?(inclusive). The edges in the graph are represented as a 2D integer array?edges, where each?edges[i] = [ui, vi]?denotes a bi-directional edge between vertex?ui?and vertex?vi. Every vertex pair is connected by?at most one?edge, and no vertex has an edge to itself.

You want to determine if there is a?valid path?that exists from vertex?source?to vertex?destination.

Given?edges?and the integers?n,?source, and?destination, return?true?if there is a?valid path?from?source?to?destination, or?false?otherwise.

?Union-Find:

class Solution:   
    def validPath(self, n: int, edges: List[List[int]], source: int, destination: int) -> bool:
        p = [i for i in range(n)]#每个i的根

        def find(i):#找根
            if p[i] != i:
                p[i] = find(p[i])
            return p[i]

        for u, v in edges:
            p[find(u)] = find(v)
        return find(source) == find(destination) #是否同根

?

?

?

文章来源:https://blog.csdn.net/Fai_B/article/details/135007366
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。