每天一道leetcode:1466. 重新规划路线(图论中等广度优先遍历)
今日份题目:
n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。
路线用 connections 表示,其中 connections[i] = [a, b] 表示从城市 a 到 b 的一条有向路线。
今年,城市 0 将会举办一场大型比赛,很多游客都想前往城市 0 。
请你帮助重新规划路线方向,使每个城市都可以访问城市 0 。返回需要变更方向的最小路线数。
题目数据 保证 每个城市在重新规划路线方向后都能到达城市 0 。
示例1

输入:n = 6, connections = [[0,1],[1,3],[2,3],[4,0],[4,5]] 输出:3 解释:更改以红色显示的路线的方向,使每个城市都可以到达城市 0 。
示例2

输入:n = 5, connections = [[1,0],[1,2],[3,2],[3,4]] 输出:2 解释:更改以红色显示的路线的方向,使每个城市都可以到达城市 0 。
示例3
输入:n = 3, connections = [[1,0],[2,0]] 输出:0
提示
-
2 <= n <= 5 * 10^4 -
connections.length == n-1 -
connections[i].length == 2 -
0 <= connections[i][0], connections[i][1] <= n-1 -
connections[i][0] != connections[i][1]
题目思路
这道题我们使用bfs广度优先遍历。拿例1为例,我们只需要从0开始遍历,由于路径单向通行,故与这些点的连线都需要反向,除此之外,下边那条边直接找是无法从0走过去的,但还有条路需要反向,这时,我们引入反向图,在正向bfs的同时对反向图同样bfs,放入同一个队列中,这样就可以保证图中所有不满足条件的边都被记录下来了。
所谓反向图,就是将图中所有的路径反向,(i,j)处的值与(j,i)处的值交换。
代码
class Solution
{
public:int minReorder(int n, vector<vector<int>>& connections) {vector<vector<int> > graph(n);//正向图vector<vector<int> > antigraph(n);//反向图for(auto& c:connections) {graph[c[0]].push_back(c[1]);//记录正向图antigraph[c[1]].push_back(c[0]);//记录反向图}int ans=0;int visited[100000]={0};visited[0]=1;queue<int> p;p.push(0);//bfswhile(!p.empty()) {//获取当前点信息int i=p.front();p.pop();//正向遍历搜寻结果for(int j=0;j<graph[i].size();j++){if(visited[graph[i][j]]==0) {visited[graph[i][j]]=1;//标记为已到达过ans++;//0向外能到达的点的路径就是需要反向的路径p.push(graph[i][j]);}}//反向遍历搜寻结果for(int j=0;j<antigraph[i].size();j++){if(visited[antigraph[i][j]]==0) {visited[antigraph[i][j]]=1;//标记为已到达过p.push(antigraph[i][j]);} } }return ans;}
};
提交结果

欢迎大家在评论区讨论,如有不懂的代码部分,欢迎在评论区留言!
相关文章:
每天一道leetcode:1466. 重新规划路线(图论中等广度优先遍历)
今日份题目: n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以…...
Mysql—修改用户密码(重置密码)
Mysql—修改用户密码(重置密码) 1、登录mysql 1 2 [rootlocalhost ~]# mysql -uroot -p123456 [rootlocalhost ~]# mysql -hlocalhost -uroot -p123456 如果忘记密码,则跳过MySQL的密码认证过程。步骤如下: 修改Mysql配置文件…...
ECE585 Tomasulo算法:C++ Tomasulo算法模拟器
ECE585 Tomasulo算法:C Tomasulo算法模拟器 在计算机科学中,Tomasulo算法是一种动态调度和动态执行的方法,它可以有效地处理计算机指令的依赖性。这种算法由IBM的Robert Tomasulo发明,最初用于IBM 360/91的浮点单元。在这篇文章中…...
Qt中在QLabel上画点,重写QLabel类
Qt中在QLabel上画点,重写QLabel类 QT中label进行绘图 1.首先新建一个类,让这个类继承QLabel 2.在类中对鼠标点击事件及绘图事件进行重写 3.然后在UI框架下添加label控件, 4.右键label控件,添加重写的类,将其提升为刚…...
ssm+vue小型企业办公自动化系统源码和论文PPT
ssmvue小型企业办公自动化系统源码和论文PPT013 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟…...
C++ STL priority_queue
目录 一.认识priority_queue 二. priority_queue的使用 三.仿函数 1.什么是仿函数 2.控制大小堆 3.TopK问题 四.模拟实现priority_queue 1.priority_queue的主要接口框架 2.堆的向上调整算法 3.堆的向下调整算法 4.仿函数控制大小堆 五.priority_queue模拟实现整体代码和测…...
[PyTorch][chapter 50][创建自己的数据集 2]
前言: 这里主要针对图像数据进行预处理.定义了一个 class Pokemon(Dataset) 类,实现 图像数据集加载,划分的基本方法. 目录: 整体框架 __init__ load_images save_csv divide_data __len__ denormalize __g…...
SQL-每日一题【1341. 电影评分】
题目 表:Movies 表:Users 请你编写一个解决方案: 查找评论电影数量最多的用户名。如果出现平局,返回字典序较小的用户名。查找在 February 2020 平均评分最高 的电影名称。如果出现平局,返回字典序较小的电影名称。 …...
基于DBN的伪测量配电网状态估计,DBN的详细原理
目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的伪测量配电网状态估计 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN算法伪测量配电网…...
Python运算符全解析:技巧与案例探究
在Python编程中,运算符是强大的工具,能够使我们在数据处理和逻辑判断方面更加灵活。本篇博客将全面探讨Python中常用的运算符,包括算术、比较、逻辑、赋值、位、成员和身份运算符,通过实际案例为你展示如何妙用运算符解决问题。 …...
NPCon:AI模型技术与应用峰会北京站 (参会感受)
8月12日,我有幸参加了在北京皇家格兰云天大酒店举行的“AI模型技术与应用峰会”。 这次会议邀请了很多技术大咖,他们围绕: 六大论点 大模型涌现,如何部署训练架构与算力芯片 LLM 应用技术栈与Agent全景解析 视觉GPU推理服务部署 …...
为什么爬虫要用高匿代理IP?高匿代理IP有什么优点
只要搜代理IP,度娘就能给我们跳出很多品牌的推广,比如我们青果网路的。 正如你所看到的,我们厂商很多宣传用词都会用到高匿这2字。 这是为什么呢?高匿IP有那么重要吗? 这就需要我们从HTTP代理应用最多最广的…...
【JavaWeb】MySQL约束、事务、多表查询
1 约束 PRIMARY KEY 主键约束 UNIQUE 唯一约束 NOT NULL 非空约束 DEFAULT 默认值约束 FOREIGN KEY 外键约束 主键 主键值必须唯一且非空;每个表必须有一个主键 建表时主键约束 CREATE TABLE 表名 (字段名 字段类型 PRIMARY KEY,字段名 字段类型 );CR…...
【并发编程】自研数据同步工具优化:创建线程池多线程异步去分页调用其他服务接口获取海量数据
文章目录 场景:解决方案 场景: 前段时间在做一个数据同步工具,其中一个服务的任务是调用A服务的接口,将数据库中指定数据请求过来,交给kafka去判断哪些数据是需要新增,哪些数据是需要修改的。 刚开始的设…...
七、dokcer-compose部署springboot的jar
1、准备 打包后包名为 ruoyi-admin.jar 增加接口 httpL//{ip}:{port}/common/test/han #环境变量预application.yml 中REDIS_HOSTt的值,去环境变量去找;如果找不到REDIS_HOST就用myredis 1、Dockerfile FROM hlw/java:8-jreRUN ln -sf /usr/share/z…...
k8s 使用 containerd 运行时配置 http 私服
简介 Kubernetes 从 v1.20 开始弃用 Docker,并推荐用户切换到基于容器运行时接口(CRI)的容器引擎,如 containerd、cri-o 等。 目前使用的环境中使用了 Kubernetes v1.22.3,containerd 1.4.3,containerd 在…...
【新品发布】ChatWork企业知识库系统源码
系统简介 基于前后端分离架构以及Vue3、uni-app、ThinkPHP6.x、PostgreSQL、pgvector技术栈开发,包含PC端、H5端。 ChatWork支持问答式和文档式知识库,能够导入txt、doc、docx、pdf、md等多种格式文档。 导入数据完成向量化训练后,用户提问…...
疫情打卡 vue+springboot疾病防控管理系统java jsp源代码
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 疫情打卡 vuespringboot 系统有1权限:管理…...
python --连接websocket
如果只是模拟js端发送接收的话,已经有了websocket server的话,只有client就好了 pip install websocket-client#-*- encoding:utf-8 -*-import sys sys.path.append("..") from socket import * import json, time, threading from websocket…...
数据库内日期类型数据大于小于条件查找注意事项
只传date格式的日期取查datetime的字段的话默认是 00:00:00 日期类型字符串需要使用 ’ ’ 单引号括住 使用大于小于条件查询某一天的日期数据 前后判断条件不能是同一天 一个例子 数据库内数据: 查询2023-08-14之后的数据: select * from tetst…...
软考 系统架构设计师之考试感悟5
接前一篇文章:软考 系统架构设计师之考试感悟4 今天(2026年05月23日),本人第五次参加了软考系统架构设计师的考试。一晃距离上次考试已经半年多了,感觉就像昨天一样。记得上一次考试结束后,直接去什刹海的南门涮肉和高中的兄弟们聚会,当天很嗨皮,一切仿佛刚刚过去一样。…...
5分钟解锁专业直播音质:OBS-VST插件终极使用指南
5分钟解锁专业直播音质:OBS-VST插件终极使用指南 【免费下载链接】obs-vst Use VST plugins in OBS 项目地址: https://gitcode.com/gh_mirrors/ob/obs-vst 你是否曾羡慕专业主播的清晰音质,而自己的直播声音却总是嘈杂不堪?别担心&am…...
刚刚,马斯克第三代星舰首飞成功!
克雷西 发自 凹非寺量子位 | 公众号 QbitAI刚刚,马斯克的第十二次星舰试验,也是第三代星舰的首次飞行,顺利完成!当地时间昨天下午5点30分(北京时间今早6点30分),33台猛禽3发动机同时点火&#x…...
HAR模型调优实战:为何精心调优的线性模型能击败复杂机器学习?
1. 项目概述:当HAR模型遇上机器学习,一场关于“调优”的较量在金融计量和量化交易领域,预测明天的市场波动率,就像试图预测一场风暴的强度,充满了挑战但也至关重要。无论是为了给衍生品定价、管理投资组合风险…...
自动驾驶、机器人导航都在用:实战调参卡尔曼滤波的Q和R(Python/OpenCV示例)
自动驾驶与机器人导航中的卡尔曼滤波实战:Q和R参数调优指南卡尔曼滤波在状态估计领域就像一位不知疲倦的裁判,不断在系统预测和传感器测量之间寻找平衡点。而Q(过程噪声协方差)和R(测量噪声协方差)这两个关…...
破解特征相关性难题:MVIM与CVIM如何提供更稳健的变量重要性评估
1. 项目概述:从“黑盒”到“可解释”的桥梁在数据科学和机器学习的日常工作中,我们常常面临一个核心矛盾:一方面,以XGBoost、深度神经网络为代表的复杂模型因其卓越的预测性能而备受青睐;另一方面,这些模型…...
开源机器学习项目贡献者角色演化与社区健康度分析
1. 开源机器学习项目中的贡献者角色:一个动态的生态系统在开源软件的世界里,尤其是像TensorFlow、PyTorch这样的机器学习(ML)库,项目的生命力并非仅仅源于几行精妙的代码,而是根植于一个由多元角色构成的、…...
外观专利和实用新型
外观设计专利与实用新型专利:技术创新的法律双翼 谨以此文,献给每一位在产品创新与外观设计之间寻求法律护城河的工程师、架构师与技术决策者。外观设计专利与实用新型专利,如同一对孪生兄弟——一个守护“美学表达”,一个护卫“实用改进”;一个关乎“看起来怎样”,一个关…...
meent开源库实战:RCWA/TMM原理、实现与超表面优化避坑指南
1. 项目概述与核心价值如果你正在设计光子晶体、超表面或者任何带有周期性微纳结构的光学器件,那么“仿真”这一步几乎是绕不开的。无论是想优化一个光栅耦合器的耦合效率,还是设计一个能将特定波长光高效偏转的衍射元件,你都需要一个可靠的工…...
如何用OpenSpeedy实现单机游戏5倍速运行:完整免费加速教程
如何用OpenSpeedy实现单机游戏5倍速运行:完整免费加速教程 【免费下载链接】OpenSpeedy 🎮 An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy 还在为游戏卡顿和漫长的等待时间烦恼吗?Ope…...
