題目
難度:簡單
語言: 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 協議》,轉載必須註明作者和本文連結