banner
NEWS LETTER

LeetCode-1436.旅行终点站

Scroll down

题目

  • 难度简单
  • 题目链接https://leetcode-cn.com/problems/destination-city/
  • 语言: 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给定函数体

1
2
3
4
5
6
7
8
9
10
class Solution {

/**
* @param String[][] $paths
* @return String
*/
function destCity($paths) {

}
}

思路

终点就是不会作为起点,所以拆成两个数组(起点数组和终点数组),遍历终点数组,如果终点数组中某个元素不在起点数组内,则该地点就是最终的终点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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;
}
}
}
}

结果

1436

其他文章
目录导航
  1. 1. 题目
  2. 2. 解题
请输入关键词进行搜索