首页 > 编程语言 >[Python手撕]公交路线

[Python手撕]公交路线

时间:2024-10-05 12:00:21浏览次数:9  
标签:Python route next source int station 公交路线 visited

class Solution:
    def numBusesToDestination(self, routes: List[List[int]], source: int, target: int) -> int:
        if source == target:
            return 0
        
        
        station_route = {}


        for i in range(len(routes)):
            for j in routes[i]:
                if j not in station_route:
                    station_route[j] = [i]
                else:
                    station_route[j].append(i)
        
        if source not in station_route:
            return -1


        queue = [(source,0)]
        visited_station = set()
        visited_station.add(source)
        visited_route = set()

        while queue:
            station,transfer = queue.pop(0)

            for next_route in station_route[station]:
                if next_route not in visited_route:
                    visited_route.add(next_route)
                    for next_station in routes[next_route]:
                        if next_station not in visited_station:
                            if next_station == target:
                                return transfer+1
                            visited_station.add(next_station)
                            queue.append((next_station,transfer+1))

        return -1

标签:Python,route,next,source,int,station,公交路线,visited
From: https://www.cnblogs.com/DCFV/p/18447740

相关文章

  • [Python手撕]判断二分图
    classSolution:defisBipartite(self,graph:List[List[int]])->bool:defbfs(i):color[i]=1queue=[(i,1)]whilequeue:t,c=queue.pop(0)nc=0......
  • Python替换pypi阿里源
    安装python解释器完成后,使用pip安装模块会遇到超时或者直接无法安装,可以设置使用国内的阿里源或者清华源,下面介绍下步骤阿里源:pypi镜像源清华源:pypi镜像源python-mpipconfigsetglobal.index-urlhttp://mirrors.aliyun.com/pypi/simplepython-mpipconfigsetinstal......
  • 用python写一段脚本:将旧的视频文件中的音频替换成新的,并保存成新的视频文件
    代码:importsubprocessdefreplace_audio_with_ffmpeg(video_path,audio_path,output_path):#构建ffmpeg命令command=['ffmpeg','-i',video_path,#输入视频文件'-an',#禁用输入视频的音频'-i&......
  • 深入 Python 数据分析:高级技术与实战应用
    一、引言 Python作为一种强大的编程语言,在数据分析领域中发挥着重要作用。本文将带领读者深入探索Python数据分析的高级技术,通过实际案例和代码示例,帮助读者提升数据分析能力和解决实际问题的能力。 二、数据读取与预处理 使用 pandas 库读取各种数据格式(如CSV、......
  • 深入探索 Python 爬虫:高级技术与实战应用
    一、引言 Python爬虫是一种强大的数据采集工具,它可以帮助我们从互联网上自动获取大量有价值的信息。在这篇文章中,我们将深入探讨Python爬虫的高级技术,包括并发处理、反爬虫策略应对、数据存储与处理等方面。通过实际的代码示例和详细的解释,读者将能够掌握更高级的爬虫技巧,提......
  • Python进程池:提升你的并发性能
    引言在现代编程中,多核处理器的普及使得并发编程变得尤为重要。Python,作为一种广泛使用的编程语言,提供了多种并发和并行编程的工具。其中,multiprocessing库中的进程池(Pool)是一个强大的工具,它可以帮助我们有效地利用多核处理器,提高程序的执行效率。本文将带你深入了解进程池的使用,从......
  • (开题)flask框架基于Web的工艺品展示系统的设计与实现(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务和在线展示平台已成为各行业推广和销售产品的重要手段。工艺品作为富含文化底蕴和艺术价值的产品,其传统......
  • (开题)flask框架基于Web的高校学生竞赛成果管理系统65y7o(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今教育体系中,高校学生竞赛作为培养学生实践能力、创新思维和团队协作精神的重要途径,其重要性日益凸显。然而,随着竞赛种类和数量的不断......
  • Python常见面试题(100道)
        面试总是让人倍感压力,尤其是在技术领域,准备充分非常关键。为了帮助你更好地应对Python面试,我精心整理了100道经典的Python面试题,并附上详细答案和解析。这些问题涵盖了基础知识、实用技巧和常见难点,旨在提升你的面试能力,让你自信面对挑战。快来领取这份资源,助你顺......
  • python相平面 图形
    二阶非线性自治系统绘制相平面图。假设我们有一个简单的阻尼摆系统,其状态方程可以表示为:\[dx1/dt=x2\\dx2/dt=-cx2-gsin(x1)\]importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.integrateimportodeint#定义系统的状态方程defpendul......