package com.leetcode.easy;
import java.util.*;
/**
* 〈1436. 旅行终点站〉
*给你一份旅游线路图,该线路图中的旅行线路用数组 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" 。
* @author PitterWang
* @create 2020/5/4
* @since 1.0.0
*/
public class DestCity {
public static void main(String[] args) {
List<List<String>> paths = new ArrayList<>();
List<String> list = new ArrayList<>();
list.add("London");
list.add("New York");
paths.add(list);
List<String> list1 = new ArrayList<>();
list1.add("New York");
list1.add("Lima");
paths.add(list1);
List<String> list2 = new ArrayList<>();
list2.add("Lima");
list2.add("Sao Paulo");
paths.add(list2);
System.out.println(destCity(paths));
}
/***
* 思路:由于都是两个参数的list并且要根据一个值,找另一个值,所以要想到先把值放到map里
* 然后取出开始开始的值,去map里get,如果get到说明还有next,get不到就到达结束
* @param paths
* @return
*/
public static String destCity(List<List<String>> paths) {
Map<String,String> map = new HashMap<>();
for (List<String> path:paths){
map.put(path.get(0),path.get(1));
}
String from = paths.get(0).get(0); //开始城市
while (true){
if((map.get(from)) == null){
return from;
}else{
from = map.get(from);
}
}
}
}
1436. 旅行终点站
最新推荐文章于 2020-11-06 23:51:03 发布