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)); ; } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章