入门力扣自学笔记215 C++ (题目编号:1971)

news2024/11/25 7:04:34

1971. 寻找图中是否存在路径

题目:

有一个具有 n 个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1)。图中的边用一个二维整数数组 edges 表示,其中 edges[i] = [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。 每个顶点对由 最多一条 边连接,并且没有顶点存在与自身相连的边。

请你确定是否存在从顶点 source 开始,到顶点 destination 结束的 有效路径 。

给你数组 edges 和整数 n、source 和 destination,如果从 source 到 destination 存在 有效路径 ,则返回 true,否则返回 false 。


示例 1:


输入:n = 3, edges = [[0,1],[1,2],[2,0]], source = 0, destination = 2
输出:true
解释:存在由顶点 0 到顶点 2 的路径:
- 0 → 1 → 2 
- 0 → 2


示例 2:

 输入:n = 6, edges = [[0,1],[0,2],[3,5],[5,4],[4,3]], source = 0, destination = 5
输出:false
解释:不存在由顶点 0 到顶点 5 的路径.


提示:

1 <= n <= 2 * 105
0 <= edges.length <= 2 * 105
edges[i].length == 2
0 <= ui, vi <= n - 1
ui != vi
0 <= source, destination <= n - 1
不存在重复边
不存在指向顶点自身的边


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


思路:

利用BFS或者DFS从起始点进行遍历,记录每一个经过的点记录下来,如果和目标点重合,那么就证明能够到达,返回TRUE。如果每一个点都遍历后发现无法打到目标点,则返回FALSE。


代码:

class Solution {
public:
    bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {
        vector<vector<int>> adj(n);
        for (auto &&edge : edges) {
            int x = edge[0], y = edge[1];
            adj[x].emplace_back(y);
            adj[y].emplace_back(x);
        }
        vector<bool> visited(n, false);
        queue<int> qu;
        qu.emplace(source);
        visited[source] = true;
        while (!qu.empty()) {
            int vertex = qu.front();
            qu.pop();
            if (vertex == destination) {
                break;
            }
            for (int next: adj[vertex]) {
                if (!visited[next]) {
                    qu.emplace(next);
                    visited[next] = true;
                }
            }
        }
        return visited[destination];
    }
};

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

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

相关文章

安装 DbVisualizer pro 10.0.16,编辑器中文乱码的解决

DbVisualizer pro 10.0.16 双击安装&#xff0c; 选择下载 JRE运行后 选择 创建 桌面快捷方式 安装成功后 ping 报错无法连接到mysql &#xff0c; 驱动 所致 官方下载最新驱动 MySQL :: Download MySQL Connector/J (Archived Versions)https://downloads.mysql.com/archi…

springcloudAlibaba之seata的使用

1.seata的基础角色&#xff1a; TC(Transaction Coordainator):事务协调者&#xff0c;它维护全局和分支事务的状态&#xff0c;驱动全局事务提交和回滚 TM(Transaction Manager):事务管理器&#xff0c;它定义了全局事务的范围&#xff0c;主要包括开始全局事务、提交全局事务…

采用多层人工神经网络的能源消耗的时间序列预测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 该项目为能源消耗的时间序列预测&#xff0c;在Matlab中实现。该预测采用多层人工神经网络&#xff0c;基于Kaggle训练集预测未…

【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)

需要全部源码请点赞关注收藏后评论区留言私信~~~ 基本思想 迭代关系式是迭代法应用时的关键问题&#xff0c;而梯度下降&#xff08;Gradient Descent&#xff09;法正是用梯度来建立迭代关系式的迭代法。 机器学习模型的求解一般可以表示为&#xff1a; 其中&#xff0c;f(x)…

LSTM返向传播代码实现——LSTM从零实现系列(4)

一、前言 这个LSTM系列是在学习时间序列预测过程中的一些学习笔记&#xff0c;包含理论分析和源码实现两部分。本质属于进阶内容&#xff0c;因此神经网络的基础内容不做过多讲解&#xff0c;想学习基础&#xff0c;可看之前的神经网络入门系列文章&#xff1a; https://blog.…

IntelliJ IDEA建立SSM论文基本增删改查管理系统

IntelliJ IDEA建立SSM论文基本增删改查管理系统 1、启动IntelliJ IDEA程序 2、点击File----->New ------>Project建立项目 3、在弹出的对话框中&#xff0c;左边点击”maven”建立maven项目&#xff0c;右边的选择框不要选择&#xff0c;选择maven-archetype-webapp不能…

GAN2 ~

这也是第二季了 近年来&#xff0c;基于生成对抗式网络&#xff08;Generative Adversarial Network, GAN&#xff09;的图片生成研究工作取得了显著的进展。除了能够生成高分辨率、逼真的图片之外&#xff0c;许多创新应用也应运而生&#xff0c;诸如图片个性化编辑、图片动画…

C++ STL算法(一)利用STL算法解决很常见的一些子问题

文章目录next_permutationlower_bound 与 upper_boundpartial_sumsort 与 uniquenext_permutation cplusplus&#xff1a; next_permutation 作用&#xff1a;得到所有的全排列 例题&#xff1a; P1706 全排列问题 void test1() {int n;cin >> n;int* arr new int[n…

Oracle基础版

这是上上周的事情&#xff0c;我们甲方强烈要求使用oracle数据库&#xff0c;也就上学的时候玩过Oracle也忘得差不多了&#xff0c;所以一直不想弄&#xff0c;我们开会产品说要提测了&#xff0c;我还没弄&#xff0c;这不得哐哐开始干活&#xff0c;过程吧还算顺利&#xff0…

Java学习之第八章练习题-1

目录 第一题 题目 我的代码 Person类 错误 正确写法 输出结果 附加要求 代码 结果 第二题 题目 答案 第三题 题目 代码 总结不足 创建对象并运行 第四题 题目 运行结果​编辑 第五题 题目 第六题 题目 第一题 题目 我的代码 Person类 package com.hspedu…

DBCO-NHS 1353016-71-3,二苯基环辛炔-活性酯 可用于以高特异性和反应性标记叠氮化物修饰的生物分子

名称 DBCO-NHS ester 中文名称 二苯基环辛炔-活性酯 英文名称 DBCO-NHS NHS-DBCO 分子量 402.40 CAS 1353016-71-3 溶剂 溶于DMSO, DMF, DCM, THF, Chloroform 存储条件 -20冷冻保存 保存时间 一年 结构式 DBCO&#xff08;二苯并环辛炔&#xff09;是一种环炔烃&…

怎么将视频转为音频mp3格式?这些转换方法一分钟就能学会

随着现在娱乐方式的多样化&#xff0c;我们可以在闲暇时间做一些令人放松的事情。对于我来说&#xff0c;就很喜欢一边听歌一边发呆。我之前喜欢的一位歌手&#xff0c;他的翻唱歌曲以及原创音乐都得到了网友很高的评价&#xff0c;但是有些歌曲在平台上没有音源&#xff0c;我…

【内网安全-CS】Cobalt Strike启动运行上线方法

目录 一、启动运行 1、第一步&#xff1a;进入cs目录 2、第二步&#xff1a;查看本机ip 3、第三步&#xff1a;启动"团队服务器" 4、第四步&#xff1a;客户端连接 二、上线方法 1、第一步&#xff1a;生成监听器 2、第二步&#xff1a;生成木马 3、第三步&…

如何将智能设备关联至云开发中的项目?

将应用中已经连接的设备关联至云项目后&#xff0c;就可以在 涂鸦 IoT 开发平台 通过云开发主动管理和控制对应的设备。云开发提供多种应用中的设备关联方式&#xff1a; 关联自有 App 账号关联自有小程序关联涂鸦 App 账号关联 SaaS 方式一&#xff1a;关联自有 App 大家可以…

深度学习入门(六十)循环神经网络——门控循环单元GRU

深度学习入门&#xff08;六十&#xff09;循环神经网络——门控循环单元GRU前言循环神经网络——门控循环单元GRU课件关注一个序列门候选隐状态隐状态总结教材1 门控隐状态1.1 重置门和更新门1.2 候选隐状态1.4 隐状态2 从零开始实现2.1 初始化模型参数2.2 定义模型2.3 训练与…

前端本地存储数据库 IndexedDB 存储文件

介绍 IndexedDB 是一种底层 API&#xff0c;用于在客户端存储大量的结构化数据。目前各浏览器都已支持&#xff0c;兼容性很好。 特点 IndexedDB 是一个基于 JavaScript 的面向对象数据库&#xff0c;IndexedDB 允许您存储和检索用键索引的对象&#xff1b;可以存储结构化克隆…

MySQL8.0基础篇

文章目录一、MySQL概述1、数据库概述1.1 数据库作用1.2 数据库的相关概念2、MySQL概述2.1 概述2.2 RDBMS与非RDBMS3、MySQL环境安装3.1 MySQL的下载、安装、配置(win)3.2 MySQL登录3.3 MySQL演示使用3.4 MySQL目录结构与源码二、SQL查询1、SQL详情1.1 SQL分类1.2 SQL语言的规则…

Docker和docker-compose中部署nginx-rtmp实现流媒体服务与oob和ffmpeg推流测试

场景 Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流&#xff1a; Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_霸道流氓气质的博客-CSDN博客_nginx-rtmp-win64 上面讲的是在windows中搭建nginx-rtmp&#xff0c;如果实在centos中使用docker或…

使用Git拉取和推送到仓库

使用Git拉取和推送到仓库 0、前置工作 首先安装和配置git &#xff0c;参考&#xff1a; git安装教程_嘴巴嘟嘟的博客-CSDN博客_全局安装gitGit上传文件代码到GitHub&#xff08;超详细&#xff09;_蓝布棉的博客-CSDN博客_git上传文件到github仓库 没有仓库的情况 创建仓…

项目总结篇

注意会话管理&#xff1a;cookie,session的作用&#xff1b;(Redis等) 过滤敏感词&#xff08;相关算法&#xff09;&#xff0c;事务&#xff08;Spring怎么管理&#xff09; Redis的数据结构适合那种情况 kafka&#xff1a;框架背后通用的原则&#xff0c;模式&#xff0c;生…