Leetcode—815. 公交路线【困难】(unordered_map+queue)

news2024/11/10 13:33:10

2024每日刷题(163)

Leetcode—815. 公交路线

在这里插入图片描述

bfs实现代码

class Solution {
public:
    int numBusesToDestination(vector<vector<int>>& routes, int source, int target) {
        if(source == target) {
            return 0;
        }
        unordered_map<int, vector<int>> stop2bus;
        int m = routes.size();

        for(int i = 0; i < m; i++) {
            for(const auto stop: routes[i]) {
                stop2bus[stop].push_back(i);
            }
        }
        vector<bool> visited(501, false);
        queue<int> q;
        for(auto &bus: stop2bus[source]) {
            visited[bus] = true;
            q.push(bus);
        }

        int ans = 1;
        while(!q.empty()) {
            int size = q.size();
            while(size--) {
                int bus = q.front();
                q.pop();
                for(auto &stop: routes[bus]) {
                    if(stop == target) {
                        return ans;
                    }
                    for(auto &nextBus: stop2bus[stop]) {
                        if(visited[nextBus] == false) {
                            visited[nextBus] = true;
                            q.push(nextBus);
                        }
                    }
                }
            }
            ans++;
        }
        return -1;
    }
};

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

如何用安卓玩Java版Minecraft,安卓手机安装我的世界Java版游戏的教程

安卓手机使用FCL启动器安装我的世界Java版游戏的教程。如何用安卓玩Java版Minecraft 视频教程&#xff1a;https://www.bilibili.com/video/BV1CctYebEzR/ 前言 目前&#xff0c;安卓设备上可以用来运行Java版Minecraft的启动器主要有以下几款&#xff1a; PojavLauncher&a…

Matlab-Matpower制作IEEE14-电力虚假数据注入攻击FDIA数据集

文章目录 1. 加载Matpower-IEEE14电力数据2. 导入原始数据集两个数据集结合的意义潮流分析和状态估计的意义 3. 初始化变量4. 分离有功和无功功率4. 潮流计算5. 生成测量向量6. 选择是否篡改数据7. 状态估计和雅可比矩阵8. 保存未篡改数据9. 篡改数据生成FDIA仿真数据集完整代码…

硬件工程师笔试面试——显示器件

目录 14、显示器件 14.1 基础 显示器件实物图 14.1.1 概念 14.1.2 工作原理 14.1.3 性能参数 14.1.4 应用领域 14.2 相关问题 14.2.1 液晶显示器(LCD)和有机发光二极管 (OLED)显示器在性能上有哪些主要区别? 14.2.2 在设计显示器时,如何平衡分辨率和刷新率以满足不…

C#:强大编程语言的多面魅力

C#&#xff1a;强大编程语言的多面魅力 一、C# 语言的特点与优势 &#xff08;一&#xff09;简洁的语法与精心设计 C# 在继承 C 和 C 的强大功能的同时&#xff0c;去掉了一些复杂特性&#xff0c;如宏和多重继承&#xff0c;使得语言更加简洁易懂。C# 是一种面向对象的语言…

根文件夹下文件重复检测

功能介绍&#xff1a;在传入Windows路径后&#xff08;例如“D:\小米云服务下载”&#xff09;&#xff0c;遍历文件夹下所视频有文件&#xff08;包括子文件夹下的视频文件&#xff0c;其他类型不做判断&#xff09;&#xff0c;判断视频文件是否重复&#xff08;由于视频文件…

运筹说 第125期 | 存储论经典例题讲解1

通过前几期的学习&#xff0c;我们已经学会了存储论的基本概念、确定型存储模型、单周期的随机型存储模型、其他的随机型存储模型以及存储论应用研究中的一些问题。在实际工作中&#xff0c;我们能发现存储论在能源行业中有着许多应用&#xff0c;本期小编选择了其中一些确定型…

错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

安装 zookeeper-3.8.4 版本的时候&#xff0c;启动zk打印如下错误日志 错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain后面查了下发现 zookeeper 3.5.5 版本以后&#xff0c;已编译的 jar 包&#xff0c;尾部有 bin下载的时候应该下载 编译后…

裸土检测算法实际应用、裸土检测算法样本、裸土检测算法精准检测

裸土检测算法是一种前沿的图像识别技术&#xff0c;它通过利用先进的图像处理技术和机器学习算法&#xff0c;从卫星图像、无人机拍摄的图像或其他地面监测数据中提取出裸土区域&#xff0c;并对其进行精确的分类和分析。 与传统的地面勘察方法相比&#xff0c;裸土检测算法具有…

1. YOLOv10: Real-Time End-to-End Object Detection

一、全文概述 文章主要介绍了YOLOv10在实时端到端目标检测方面的改进和创新。简要概述&#xff1a; 1.1 背景与挑战&#xff1a; 实时目标检测在计算机视觉领域具有重要意义&#xff0c;广泛应用于自动驾驶、机器人导航等场景。YOLO系列因其在性能和效率之间的有效平衡而受到…

fiddler抓包04_基础设置(字体/工具栏/抓包开关/清空)

课程大纲 1. 设置字体 菜单栏 “工具”&#xff08;tool&#xff09; - “选项”&#xff08;options&#xff09; - “appearance”&#xff0c;设置字号和字体后&#xff0c;点击确认&#xff0c;立刻生效&#xff08;无需重启&#xff09;。 2. 展开/收起工具栏 菜单栏 “…

Kotlin-Flow学习笔记

Channel 和 Flow 都是数据流&#xff0c;Channel 是“热”的&#xff0c;Flow 则是“冷”的。这里的冷&#xff0c;代表着 Flow 不仅是“冷淡”的&#xff0c;而且还是“懒惰”的。 Flow 从 API 的角度分类&#xff0c;主要分为&#xff1a;构造器、中间操作符、终止操作符。今…

Qt开发技巧(四)“tr“使用,时间类使用,Qt容器取值,类对象的删除,QPainter画家类,QString的转换,用好 QVariant类型

继续讲一些Qt技巧操作 1.非必要不用"tr" 如果程序运行场景确定是某一固定语言&#xff0c;就不需要用tr,"tr"之主要针对多语种翻译的&#xff0c;因为tr的本意是包含英文&#xff0c;然后翻译到其他语言比如中文&#xff0c;不要滥用tr&#xff0c;如果没有…

【算法】差分思想:强大的算法技巧

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

Linux(CentOS8)服务器安装RabbitMQ

我安装了很久都没有成功, 各种问题, 每次的异常都不一样, 现将成功安装过程做个总结 安装前工作 确保已经安装了一些基础工具和组件库 下载安装包 https://www.erlang.org/patches/otp-24.3.4.5 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.15/ra…

Python热频随机森林分类器算法模型模拟

&#x1f3af;要点 研究发射测量斜率和时滞热频率表征&#xff0c;使用外推法计算三维磁场并定性比较使用基于焓的热演化环模型模拟每条线的热力学响应&#xff0c;测试低频、中频和高频热场景使用光学薄、高温、低密度等离子体的单位体积辐射功率或发射率公式等建模计算使用直…

GPU加速生物信息分析的尝试

GPU工具分类 实话实说&#xff0c;暂时只有英伟达的GPU才能实现比较方便的基因组分析集成化解决方案&#xff0c;其他卡还需要努力呀&#xff0c;或者需要商业公司或学术团体的努力开发呀&#xff01;FPGA等这种专用卡的解决方案也是有的&#xff0c;比如某测序仪厂家&#xf…

基于stm32使用ucgui+GUIBuilder开发ui实例

1 项目需求 1.1 基于Tft 触摸屏实现一个自锁按键 1.2 按键在按下后背景色需要进行变化&#xff0c;以凸显当前按键状态&#xff08;选中or 未选中&#xff09; 1.3 按键选中时对某一gpio输出低电平&#xff0c;非选中时输出高电平 2 移植 ucgui UCGUI的文件数量很大&#x…

happens-before

happens-before 一、happens-before 规则的含义 happens-before 是 Java 内存模型&#xff08;JMM&#xff09;中用于定义多线程之间操作顺序的规则集合。它规定了如果一个操作 A happens-before 另一个操作 B&#xff0c;那么 A 的结果对 B 可见&#xff0c;并且在 B 执行之…

未来最好的程序开发语言:Rust - 安装rust

安装 Rust - Rust 程序设计语言一门帮助每个人构建可靠且高效软件的语言。https://www.rust-lang.org/zh-CN/tools/install 设置下载源:

开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序与社交电商的崛起

摘要&#xff1a;本文深入探讨了社交电商迅速发展壮大的原因&#xff0c;并分析了开源 AI 智能名片链动 21 模式 S2B2C 商城小程序在社交电商中的重要作用。通过对传统电商与社交电商的对比&#xff0c;以及对各发展因素的剖析&#xff0c;阐述了该小程序如何为社交电商提供新的…