前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 1971. Find if Path Exists in Graph(图的遍历)

LeetCode 1971. Find if Path Exists in Graph(图的遍历)

作者头像
Michael阿明
发布2021-09-06 11:56:05
8630
发布2021-09-06 11:56:05
举报
文章被收录于专栏:Michael阿明学习之路

文章目录

1. 题目

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 start to vertex end.

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

Example 1:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
Input: n = 3, edges = [[0,1],[1,2],[2,0]], 
start = 0, end = 2
Output: true
Explanation: There are two paths from vertex 0 to vertex 2:
- 0 → 1 → 2
- 0 → 2

Example 2:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
Input: n = 6, edges = [[0,1],[0,2],[3,5],[5,4],[4,3]], 
start = 0, end = 5
Output: false
Explanation: There is no path from vertex 0 to vertex 5.
 
Constraints:
1 <= n <= 2 * 10^5
0 <= edges.length <= 2 * 10^5
edges[i].length == 2
1 <= ui, vi <= n - 1
ui != vi
1 <= start, end <= n - 1
There are no duplicate edges.
There are no self edges.

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-if-path-exists-in-graph 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 图的遍历,BFS、DFS都可以
代码语言:javascript
复制
class Solution:
    def validPath(self, n: int, edges: List[List[int]], start: int, end: int) -> bool:
        from queue import Queue
        g = [[] for _ in range(n)]
        for e in edges:
            g[e[0]].append(e[1])
            g[e[1]].append(e[0])
        vis = [0]*n
        q = Queue()
        q.put(start)
        vis[start] = 1
        while not q.empty():
            id = q.get()
            if id == end:
                return True
            for nid in g[id]:
                if vis[nid] == 0:
                    vis[nid] = 1
                    q.put(nid)
        return False

312 ms 66.1 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档