LeetCode - 1436 - 旅行终点站
更多内容关注个人博客:lemonlyue.github.io/
题目
难度:简单
语言: PHP
题目内容:
给你一份旅游线路图,该线路图中的旅行线路用数组 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” 。
示例 3:
输入:paths = [[“A”,”Z”]]
输出:“Z”
解题
LeetCode给定函数体
class Solution {
/**
* @param String[][] $paths
* @return String
*/
function destCity($paths) {
}
}
思路
终点就是不会作为起点,所以拆成两个数组(起点数组和终点数组),遍历终点数组,如果终点数组中某个元素不在起点数组内,则该地点就是最终的终点
class Solution {
/**
* @param String[][] $paths
* @return String
*/
function destCity($paths) {
$start = [];
$end = [];
// 拆分为两个数组,获取起点和终点
foreach ($paths as $item) {
$start[] = $item[0];
$end[] = $item[1];
}
/**
* @desc PHP内置获取数组某一列
*/
// $start = array_column($paths, 0);
// $end = array_column($paths, 1);
foreach ($end as $item) {
// 判断终点是否存在于起点,存在则不是最终的终点
if (!in_array($item, $start)) {
return $item;
}
}
}
}
结果
本作品采用《CC 协议》,转载必须注明作者和本文链接