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

文章目录

    • 1. 题目
    • 2. 解题

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:
在这里插入图片描述

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:
- 012
- 02

Example 2:
在这里插入图片描述

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都可以
class Solution:def validPath(self, n: int, edges: List[List[int]], start: int, end: int) -> bool:from queue import Queueg = [[] for _ in range(n)]for e in edges:g[e[0]].append(e[1])g[e[1]].append(e[0])vis = [0]*nq = Queue()q.put(start)vis[start] = 1while not q.empty():id = q.get()if id == end:return Truefor nid in g[id]:if vis[nid] == 0:vis[nid] = 1q.put(nid)return False

312 ms 66.1 MB Python3


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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更新wpscan_wpscan扫描工具

简介WPScan是一个扫描WordPress漏洞的黑盒子扫描器&#xff0c;可以扫描出wordpress的版本&#xff0c;主题&#xff0c;插件&#xff0c;后台用户以及爆破后台用户密码等&#xff0c;Kali Linux默认自带了WPScan&#xff0c;也可以到Github项目仓库[1]中下载安装&#xff0c;其…

LeetCode 1974. 使用特殊打字机键入单词的最少时间

文章目录1. 题目2. 解题1. 题目 有一个特殊打字机&#xff0c;它由一个 圆盘 和一个 指针 组成&#xff0c; 圆盘上标有小写英文字母 ‘a’ 到 ‘z’。 只有 当指针指向某个字母时&#xff0c;它才能被键入。指针 初始时 指向字符 ‘a’ 。 每一秒钟&#xff0c;你可以执行以…

LeetCode 1979. 找出数组的最大公约数

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums &#xff0c;返回数组中最大数和最小数的 最大公约数 。 两个数的 最大公约数 是能够被两个数整除的最大正整数。 示例 1&#xff1a; 输入&#xff1a;nums [2,5,6,9,10] 输出&#xff1a;2 解释&#xff1a; nums 中…

BZOJ 1529: [POI2005]ska Piggy banks( 并查集 )

每一连通块砸开一个就可以拿到所有的钱, 所以用并查集求连通块数 -------------------------------------------------------------------#include<bits/stdc.h>#define rep(i, n) for(int i 0; i < n; i)#define clr(x, c) memset(x, c, sizeof(x))using namespace …

LeetCode 1980. 找出不同的二进制字符串

文章目录1. 题目2. 解题1. 题目 给你一个字符串数组 nums &#xff0c;该数组由 n 个 互不相同 的二进制字符串组成&#xff0c;且每个字符串长度都是 n 。 请你找出并返回一个长度为 n 且 没有出现 在 nums 中的二进制字符串。 如果存在多种答案&#xff0c;只需返回 任意一个…

#时间预测算法_改进的智慧交通系统出行时间预测算法

引用Chowdhury N K, Leung C K S. Improved travel time prediction algorithms for intelligent transportation systems[C]//International Conference on Knowledge-Based and Intelligent Information and Engineering Systems. Springer, Berlin, Heidelberg, 2011: 355-3…

Navicat for MySQL数据库管理工具

官网下载地址&#xff1a;http://www.navicat.com/download/navicat-for-mysql //如图所示成功建立连接 Host Nmae/Ip Adress:localhost为本地连接&#xff0c;建立远程数据库连接时设置对应ip即可。 1&#xff09;.新建表插入中文数据可以出现&#xff1a; 导致程序直接关闭&a…

LeetCode 1981. 最小化目标值与所选元素的差(DP)

文章目录1. 题目2. 解题1. 题目 给你一个大小为 m x n 的整数矩阵 mat 和一个整数 target 。 从矩阵的 每一行 中选择一个整数&#xff0c;你的目标是 最小化 所有选中元素之 和 与目标值 target 的 绝对差 。 返回 最小的绝对差 。 a 和 b 两数字的 绝对差 是 a - b 的绝对…

hdu 5312 数学

转载于:https://www.cnblogs.com/cnblogs321114287/p/4676747.html

协程asyncio_Asyncio深入浅出

Asyncio是一个异步编程的框架&#xff0c;可以解决异步编程&#xff0c;协程调度问题&#xff0c;线程问题&#xff0c;是整个异步IO的解决方案。在学习asyncio之前&#xff0c;我们先来理清楚同步/异步的概念&#xff1a;同步是指完成事务的逻辑&#xff0c;先执行第一个事务&…

python 迭代器、生成器、yield、iter

文章目录1. 迭代器2. 生成器3. 标准库3.1 过滤3.2 映射3.3 合并3.4 排列组合3.5 重新排列4. yield from5. 可迭代的归约函数6. iter 还可以传入2个参数7. 生成器当成协程learn from 《流畅的python》 1. 迭代器 所有生成器都是迭代器&#xff0c;因为生成器完全实现了迭代器接…

java微信学习 接入

现在实习的公司要做微信开发&#xff0c;然而一直没安排任务&#xff0c;所以一直在看微信接口&#xff0c;记录下学习的内容 微信开发肯定要看的就是微信公众平台开发者文档&#xff0c;上面有每种接口的调用格式&#xff0c;刚开始学习的时候自己申请了一个订阅号&#xff0c…

LeetCode 1976. 到达目的地的方案数(迪杰斯特拉 Python 优先队列)

文章目录1. 题目2. 解题1. 题目 你在一个城市里&#xff0c;城市由 n 个路口组成&#xff0c;路口编号为 0 到 n - 1 &#xff0c;某些路口之间有 双向 道路。 输入保证你可以从任意路口出发到达其他任意路口&#xff0c;且任意两个路口之间最多有一条路。 给你一个整数 n 和…

c++ sendmessage 鼠标 坐标是相对自身吗_【科普】你真的足够了解五轴加工吗?看完豁然开朗!...

近年来五轴联动数控加工中心在各领域得到了越来越广泛的应用。在实际应用中&#xff0c;每当人们碰见异形复杂零件高效、高质量加工难题时&#xff0c;五轴联动技术无疑是解决这类问题的重要手段。越来越多的厂家倾向于寻找五轴设备来满足高效率、高质量的加工。但是&#xff0…

32g内存 android开发,16G走开 我要32G内存的安卓手机

对于很多用户来说&#xff0c;在准备换手机的时候最纠结的莫过于是选择16G的还是32G的&#xff0c;毕竟价格相差好几百&#xff0c;但这里给你的建议是买32G的&#xff0c;即使贵点&#xff0c;但长远来说&#xff0c;是利大于弊的&#xff0c;为什么这么说呢&#xff0c;且听小…

andriod studio 运行 无结果_无负压静音供水设备下篇一

1、无负压静音供水设备的安全接地保护a )控制柜的金属柜体上应有可靠的接地保护&#xff0c;与接地点相连的保护导线的截面应符合GB/T3797-2005中4.10.6的规定。与接地点连接的导线必须是黄、绿双色或铜编织线&#xff0c;并有明显的接地标识。a) 主接地点与设备任何有关的、因…

html设置div页面最底,使用css让大图片不超过网页宽度

让大图片不超过网页宽度&#xff0c;让图片不撑破通过CSS样式设置的DIV宽度&#xff01;接下来&#xff0c;我们来介绍下网站在开发DIVCSS的时候会遇到一个问题&#xff0c;在发布一个大图片的时候因为图片过宽会撑破自己设置的div宽度的问题。图片撑破布局原因1、由于浏览器版…

java上机题四取三排列_java语言特性概述

一.前言 我们都知道java是面向对象的编程&#xff0c;其中四个基本特性&#xff1a;抽象、封装、继承、多态。这四个特性&#xff0c;概括起来可以这么理解&#xff0c;抽象、封装、继承是多态的基础&#xff0c;多态是抽象、封装、继承的表现。二. JAVA 语言特点 a) 跨平台&am…

LeetCode 1984. 学生分数的最小差值

文章目录1. 题目2. 解题1. 题目 给你一个 下标从 0 开始 的整数数组 nums &#xff0c;其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。 从数组中选出任意 k 名学生的分数&#xff0c;使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。 返回可能的 最小差…

C++中vector使用详细说明 (转)

转自&#xff1a;http://blog.chinaunix.net/uid-26000296-id-3785610.html http://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html 一、向量的介绍 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于…