首页 > 编程语言 >力扣1436. 旅行终点站 python

力扣1436. 旅行终点站 python

时间:2024-10-09 22:49:48浏览次数:3  
标签:1436 paths set Sao python Paulo 力扣 path 终点站

给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市

题目数据保证线路图会形成一条不存在循环的线路,因此恰有一个旅行终点站。

示例 1:

输入:paths = [["London","New York"],["New York","Lima"],["Lima","Sao Paulo"]]
输出:"Sao Paulo" 
解释:从 "London" 出发,最后抵达终点站 "Sao Paulo" 。本次旅行的路线是 "London" -> "New York" -> "Lima" -> "Sao Paulo" 。

示例 2:

输入:paths = [["B","C"],["D","B"],["C","A"]]
输出:"A"
解释:所有可能的线路是:
"D" -> "B" -> "C" -> "A". 
"B" -> "C" -> "A". 
"C" -> "A". 
"A". 
显然,旅行终点站是 "A" 。

思路1(两次遍历):

因为是从citiesA到citiesB,对于最后的终点站,肯定是citiesB中的城市,所以可以用哈希表先遍历citiesB中的城市,再返回不在citiesA中的城市。

class Solution:
    def destCity(self, paths: List[List[str]]) -> str:
        citiesA = {path[0] for path in paths}
        return next(path[1] for path in paths if path[1] not in citiesA)

思路2(一次遍历):

建立两个集合,删除 B中存在的A城市,如果b中未被删除的城市,很可能是终点站。

class Solution:
    def destCity(self, paths: List[List[str]]) -> str:
        set_a = set()
        set_b = set()
        for a, b in paths:
            set_b.discard(a)  # a 一定不是答案
            if b not in set_a:  # b 有可能是答案
                set_b.add(b)
            set_a.add(a)
        return set_b.pop()

标签:1436,paths,set,Sao,python,Paulo,力扣,path,终点站
From: https://blog.csdn.net/m0_54373077/article/details/142751626

相关文章

  • # 使用Python爬虫抓取豆瓣电影标题# 使用Python爬虫抓取豆瓣电影标题
    一、前言在这个小项目中,我们将学习如何使用Python的requests库和lxml库来爬取豆瓣电影首页上的电影标题,并将这些标题保存到一个文本文件中。这不仅能够帮助我们了解基本的网页抓取技术,还能让我们熟悉数据处理的基本流程。二、环境准备确保你的开发环境中已经安装了以下Py......
  • 基于yolov8、yolov5的PCB板缺陷检测系统(含UI界面、数据集、训练好的模型、Python代码)
    blog.csdnimg.cn/direct/6f53422ed9fd44dc8daad6dc5481c4c9.png)项目介绍项目中所用到的算法模型和数据集等信息如下:算法模型:  yolov8、yolov8+SE注意力机制或yolov5、yolov5+SE注意力机制,直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑......
  • Python基于uniapp+Android平台的校园论坛交流系统 微信小程序z0c7d
    目录项目介绍具体实现截图开发者工具介绍技术路线解决的思路性能/安全/负载方面开发语言以及框架介绍数据库设计python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取项目介绍校园论坛系统设计的目的是为用户提供失物招领、二手闲置、跑......
  • Python,ModuleNotFoundError: No module named 'paho'
     Exceptioninthreaddjango-main-thread:    frompaho.mqttimportclientasmqtt_clientModuleNotFoundError:Nomodulenamed'paho'  解释:ModuleNotFoundError:Nomodulenamed'paho'表示Python解释器无法找到名为paho的模块。这通常意味着paho-mqtt客户端......
  • JS刷力扣-链表【持续跟新】
    力扣的链表归类2.两数相加【链表+递归】前置知识:1.链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。2.链表的入口节点称为链表的头结点也就是head。leet......
  • VSCode配置Python(记录)
    python安装官网在线安装或者下载离线包(勾选添加path环境变量)python指定版本运行把对应版本的python.exe复制一下,粘贴改名加个对应版本,因为添加了环境变量的缘故所以可以直接在命令窗中运行运行测试对应项目创建虚拟环境(包管理)tips:当然了,也可以用anaconda管理,但是加载比较......
  • 2024.10.09 力扣刷题 盛水最多的容器
    题目:这边是参考了B站UP主的思路进行了解答,采用双下标访问的方式进行。如果要水最多的话,一定是高的那端找低的那端,然后算出面积。如果是低的那端找高的那端,那本身下限就在自己身上,所以不从低的端固定不变。附上代码:intmaxArea(std::vector<int>&height){ if(height.empty......
  • python 打包 py 文件 为exe
    使用pyinstaller来进行打包pipinstallpyinstaller可能需要全局科学代理上网或者修改下载源地址执行命令图标path:C:\desktop\icon文件path:C:\pycharm\project\bingdundun.exe1、指定文件路径打包:pyinstaller-FC:\pycharm\project\bingdundun.exe2、不带窗......
  • python+flask计算机毕业设计银行资金账户管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和金融业务的日益复杂化,银行资金账户管理系统成为现代银行业不可或缺的一部分。传......
  • python+flask计算机毕业设计影评网站系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的快速发展和普及,影视娱乐产业迎来了前所未有的发展机遇。观众对于电影的选择和评价日益多元化,传统的电影宣传和评价方式已难以......