LeetCode1436. 旅行終點站(Java)
阿新 • • 發佈:2021-01-25
技術標籤: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.