Lc1436_旅行終點站

package com.example.demo; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 1436. 旅行終點站 * 給你一份旅遊線路圖,該線路圖中的旅行線路用數組 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示該線路將會從 cityAi 直接前往 cityBi 。請你找出這次旅行的終點站,即沒有任何可以通往其他城市的線路的城市。 * <p> * 題目數據保證線路圖會形成一條不存在循環的線路,因此只會有一個旅行終點站。 * <p> * <p> * <p> * 示例 1: * <p> * 輸入:paths = [["London","New York"],["New York","Lima"],["Lima","Sao Paulo"]] * 輸出:"Sao Paulo" * 解釋:從 "London" 出發,最後抵達終點站 "Sao Paulo" 。本次旅行的路線是 "London" -> "New York" -> "Lima" -> "Sao Paulo" 。 * 示例 2: * <p> * 輸入:paths = [["B","C"],["D","B"],["C","A"]] * 輸出:"A" * 解釋:所有可能的線路是: * "D" -> "B" -> "C" -> "A". * "B" -> "C" -> "A". * "C" -> "A". * "A". * 顯然,旅行終點站是 "A" 。 * 示例 3: * <p> * 輸入:paths = [["A","Z"]] * 輸出:"Z" * <p> * <p> * 提示: * <p> * 1 <= paths.length <= 100 * paths[i].length == 2 * 1 <= cityAi.length, cityBi.length <= 10 * cityAi != cityBi * 所有字符串均由大小寫英文字母和空格字符組成。 */ public class Lc1436 { //找出終點中不在起點的city,對於每一個list, public static String destCity(List<List<String>> paths) { Map<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.get(list.get(1)) == null) { return list.get(1); } } return null; } public static void main(String[] args) { List<List<String>> lists = new ArrayList<>(); String[][] strArray = {{"B", "C"}, {"D", "B"}, {"C", "A"}}; for (int i = 0; i < strArray.length; i++) { List<String> tempList = new ArrayList<>(); for (int j = 0; j < strArray[i].length; j++) { tempList.add(strArray[i][j]); } lists.add(tempList); } System.out.println(destCity(lists)); ; } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章