【算法leetcode每日一练】1436. 旅行终点站
文章目录
- 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. 旅行终点站相关推荐
- LeetCode刷题之1436. 旅行终点站
LeetCode刷题之1436. 旅行终点站 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给你一份旅游线路图,该线路图中的旅行线路 ...
- 【算法leetcode每日一练】266. 访问所有点的最小时间
文章目录 266. 访问所有点的最小时间: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust javascript typescript 原题传送门:ht ...
- 【算法leetcode每日一练】804. 唯一摩尔斯密码词
文章目录 804. 唯一摩尔斯密码词: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust typescript 原题传送门:https://leetcod ...
- 【算法leetcode每日一练】剑指 Offer II 080. 含有 k 个元素的组合 | 77. 组合
文章目录 剑指 Offer II 080. 含有 k 个元素的组合 | 77. 组合: 样例 1: 样例 2: 提示: 分析 题解 java c c++ python go rust javascri ...
- 【算法leetcode每日一练】2120. 执行所有后缀指令
文章目录 2120. 执行所有后缀指令: 样例 1: 样例 2: 样例 3: 提示: 分析 题解 java c c++ python go rust typescript 原题传送门:https:// ...
- 1436. 旅行终点站
1436. 旅行终点站 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cit ...
- Leetcode 1436旅行终点站 拓扑排序 并查集与队列
题目介绍 题目难度: easy 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 ...
- Leetcode算法题每日一练
第一次尝试用Javascript做Leetcode上的算法题,做了三个小时,终于完成了我的处女作. 简直写的要吐血了,此处有无数---. 原文题目如下: Input: dict = ["ca ...
- [算法]LeetCode每日一题--174. 地下城游戏(Java)
DailyChallenge 174. 地下城游戏 Hard20200712 Description 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格. ...
- 算法试题——每日一练
括号匹配 给定一个只包括(,),[,],{,}(,),[,],\{,\}(,),[,],{,}的字符串,判断该字符串是否有效.一个有效的字符串需满足: 左括号必须用相同类型的括号闭合 左括号必须以正确 ...
最新文章
- 基于snmp的windows主机私有信息监控(编辑中)
- poj1195 Mobile phones 二维线段树入门
- python生成器和迭代器区别_生成器、迭代器的区别?
- 知名设计师晒iPad mini 6渲染图:取消Home键 依旧不支持120Hz刷新率
- java url链接超时_Java HttpURLConnection超时和IO异常处理
- Windows搭建Eclipse+JDK+SDK的Android
- 一道关于压缩包的ctf题目(包括暴力破解,明文攻击,伪加密)
- 从现在开始探索工业元宇宙讲座发言稿 34500字
- mldonkey 安装详细过程
- 期末前端web大作业——动漫客栈响应式bootstarp(7页) 排版整洁,内容丰富,主题鲜明
- app测试移动应用测试 (功能测试)适合0基础学习
- ROS2机器人笔记20-12-04
- 常德职院美和易思校企共建专业第一届PPT制作与演讲大赛圆满落幕
- 阿里巴巴总裁马云经典语录。
- 【Android】Android.bp实例之编译可执行程序
- 短视频为何吸引人-锦鸿凌云
- 带你了解新兴安全技术
- POJ——3624 Balanced Lineup(线段树入门——区间最值问题)
- 怎么在线图片识别文字?这里有你需要的方法
- 使用MCU普通I/O口实现电容触摸感应方案(RC方式)
热门文章
- python 住区数据_GitHub - dstao/data_analysis: 基于Python的南京二手房数据采集及可视化分析...
- ae合成设置快捷键_AE常用的快捷键(UI动效方向)
- whatweb tree
- less css 视频教程
- 创建选区快捷键是什么_PS如何移动和取消选区?快捷键是什么? - PS自学网
- 微软服务器系统版本有几个,windows系统有几个版本
- elementUI兼容ie浏览器问题(笔记)
- 移动端调用微信和支付宝的扫一扫功能
- matlab人口增长线性回归拟合_Matlab线性回归(拟合)
- 织梦dedecms蓝色商务学院职业技术学校网站模板