文章目录

  • 1436. 旅行终点站:
  • 样例 1:
  • 样例 2:
  • 样例 3:
  • 提示:
  • 分析
  • 题解
    • java
    • c
    • c++
    • python
    • go
    • rust
    • typescript
  • 原题传送门:https://leetcode-cn.com/problems/destination-city/

1436. 旅行终点站:

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

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

样例 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" 。

样例 3:

输入:paths = [["A","Z"]]输出:"Z"

提示:

  • 1 <= paths.length <= 100
  • paths[i].length == 2
  • 1 <= cityAicityA_icityAi​.length, cityBicityB_icityBi​.length <= 10
  • cityAicityA_icityAi​ != cityBicityB_icityBi​
  • 所有字符串均由大小写英文字母和空格字符组成。

分析

  • 面对这道算法题目,二当家的陷入了沉思。
  • 需要找到仅出现在到达,未出现在出发的城市。
  • 可以先将出发的城市放到hash集中,然后再次遍历到达城市找到未出现在出发的hash集中的城市即是结果。

题解

java

class Solution {public String destCity(List<List<String>> paths) {Set<String> from = new HashSet<>();for (List<String> path : paths) {from.add(path.get(0));}for (List<String> path : paths) {if (!from.contains(path.get(1))) {return path.get(1);}}return null;}
}

c

char * destCity(char *** paths, int pathsSize, int* pathsColSize){char *to = paths[0][1];for (int i = 1; i < pathsSize; i++) {if (strcmp(to, paths[i][0]) == 0) {to = paths[i][1];i = 0;}}return to;
}

c++

class Solution {public:string destCity(vector<vector<string>>& paths) {unordered_set<string> from;for (vector<string>& path : paths) {from.insert(path[0]);}for (vector<string>& path : paths) {if (!from.count(path[1])) {return path[1];}}return nullptr;}
};

python

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

go

func destCity(paths [][]string) string {from := map[string]struct{}{}for _, path := range paths {from[path[0]] = struct{}{}}for _, path := range paths {if _, has := from[path[1]]; !has {return path[1]}}return ""
}

rust

impl Solution {pub fn dest_city(paths: Vec<Vec<String>>) -> String {let mut from = paths.iter().map(|path|{path[0].clone()}).collect::<std::collections::HashSet<_>>();paths.iter().find(|path|{!from.contains(&path[1])}).unwrap()[1].clone()}
}

typescript

function destCity(paths: string[][]): string {const from = paths.map(path => path[0]);return paths.find(path => from.indexOf(path[1]) == -1)[1];
};


原题传送门:https://leetcode-cn.com/problems/destination-city/


非常感谢你阅读本文~
欢迎【

【算法leetcode每日一练】1436. 旅行终点站相关推荐

  1. LeetCode刷题之1436. 旅行终点站

    LeetCode刷题之1436. 旅行终点站 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给你一份旅游线路图,该线路图中的旅行线路 ...

  2. 【算法leetcode每日一练】266. 访问所有点的最小时间

    文章目录 266. 访问所有点的最小时间: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust javascript typescript 原题传送门:ht ...

  3. 【算法leetcode每日一练】804. 唯一摩尔斯密码词

    文章目录 804. 唯一摩尔斯密码词: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust typescript 原题传送门:https://leetcod ...

  4. 【算法leetcode每日一练】剑指 Offer II 080. 含有 k 个元素的组合 | 77. 组合

    文章目录 剑指 Offer II 080. 含有 k 个元素的组合 | 77. 组合: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust javascri ...

  5. 【算法leetcode每日一练】2120. 执行所有后缀指令

    文章目录 2120. 执行所有后缀指令: 样例 1: 样例 2: 样例 3: 提示: 分析 题解 java c c++ python go rust typescript 原题传送门:https:// ...

  6. 1436. 旅行终点站

    1436. 旅行终点站 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cit ...

  7. Leetcode 1436旅行终点站 拓扑排序 并查集与队列

    题目介绍 题目难度: easy 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 ...

  8. Leetcode算法题每日一练

    第一次尝试用Javascript做Leetcode上的算法题,做了三个小时,终于完成了我的处女作. 简直写的要吐血了,此处有无数---. 原文题目如下: Input: dict = ["ca ...

  9. [算法]LeetCode每日一题--174. 地下城游戏(Java)

    DailyChallenge 174. 地下城游戏 Hard20200712 Description 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格. ...

  10. 算法试题——每日一练

    括号匹配 给定一个只包括(,),[,],{,}(,),[,],\{,\}(,),[,],{,}的字符串,判断该字符串是否有效.一个有效的字符串需满足: 左括号必须用相同类型的括号闭合 左括号必须以正确 ...

最新文章

  1. 基于snmp的windows主机私有信息监控(编辑中)
  2. poj1195 Mobile phones 二维线段树入门
  3. python生成器和迭代器区别_生成器、迭代器的区别?
  4. 知名设计师晒iPad mini 6渲染图:取消Home键 依旧不支持120Hz刷新率
  5. java url链接超时_Java HttpURLConnection超时和IO异常处理
  6. Windows搭建Eclipse+JDK+SDK的Android
  7. 一道关于压缩包的ctf题目(包括暴力破解,明文攻击,伪加密)
  8. 从现在开始探索工业元宇宙讲座发言稿 34500字
  9. mldonkey 安装详细过程
  10. 期末前端web大作业——动漫客栈响应式bootstarp(7页) 排版整洁,内容丰富,主题鲜明
  11. app测试移动应用测试 (功能测试)适合0基础学习
  12. ROS2机器人笔记20-12-04
  13. 常德职院美和易思校企共建专业第一届PPT制作与演讲大赛圆满落幕
  14. 阿里巴巴总裁马云经典语录。
  15. 【Android】Android.bp实例之编译可执行程序
  16. 短视频为何吸引人-锦鸿凌云
  17. 带你了解新兴安全技术
  18. POJ——3624 Balanced Lineup(线段树入门——区间最值问题)
  19. 怎么在线图片识别文字?这里有你需要的方法
  20. 使用MCU普通I/O口实现电容触摸感应方案(RC方式)

热门文章

  1. python 住区数据_GitHub - dstao/data_analysis: 基于Python的南京二手房数据采集及可视化分析...
  2. ae合成设置快捷键_AE常用的快捷键(UI动效方向)
  3. whatweb tree
  4. less css 视频教程
  5. 创建选区快捷键是什么_PS如何移动和取消选区?快捷键是什么? - PS自学网
  6. 微软服务器系统版本有几个,windows系统有几个版本
  7. elementUI兼容ie浏览器问题(笔记)
  8. 移动端调用微信和支付宝的扫一扫功能
  9. matlab人口增长线性回归拟合_Matlab线性回归(拟合)
  10. 织梦dedecms蓝色商务学院职业技术学校网站模板