1. 程式人生 > 其它 >LeetCode1436. 旅行終點站(Java)

LeetCode1436. 旅行終點站(Java)

技術標籤:LeetCode刷題

題目

給你一份旅遊線路圖,該線路圖中的旅行線路用陣列 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” 。

分析

因為線路是不迴圈的,只有一個旅行終點站,那麼我們可以用HashMap來儲存key和value。然後遍歷陣列,找到map裡面"是value,但不是key的“元素,即是終點。

public String destCity(List<List<String>> paths) {
		HashMap<String, String> map = new HashMap<>();
		for (List<String> list : paths) {
			map.put(list.get(0), list.get(1));
		}
for (List<String> list : paths) { if (!map.containsKey(list.get(1))) { return list.get(1); } } return ""; } }

反思

要理清解決問題的一個思路,到底是怎麼樣進行的?結果是不是對的?
end.