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));
;
}
}
不恋尘世浮华,不写红尘纷扰