Java | Leetcode Java题解之第332题重新安排行程

题目:

题解:

java 复制代码
class Solution {
    Map<String, PriorityQueue<String>> map = new HashMap<String, PriorityQueue<String>>();
    List<String> itinerary = new LinkedList<String>();

    public List<String> findItinerary(List<List<String>> tickets) {
        for (List<String> ticket : tickets) {
            String src = ticket.get(0), dst = ticket.get(1);
            if (!map.containsKey(src)) {
                map.put(src, new PriorityQueue<String>());
            }
            map.get(src).offer(dst);
        }
        dfs("JFK");
        Collections.reverse(itinerary);
        return itinerary;
    }

    public void dfs(String curr) {
        while (map.containsKey(curr) && map.get(curr).size() > 0) {
            String tmp = map.get(curr).poll();
            dfs(tmp);
        }
        itinerary.add(curr);
    }
}
相关推荐
q***78784 分钟前
Spring Boot的项目结构
java·spring boot·后端
q***965830 分钟前
Spring Data JDBC 详解
java·数据库·spring
Kuo-Teng32 分钟前
LeetCode 118: Pascal‘s Triangle
java·算法·leetcode·职场和发展·动态规划
倚肆44 分钟前
HttpServletResponse 与 ResponseEntity 详解
java·后端·spring
悟能不能悟1 小时前
java List怎么转换为Vector
java·windows·list
yaoxin5211231 小时前
241. Java 集合 - 使用 Collections 工厂类处理集合
java·windows
依_旧1 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
white-persist1 小时前
差异功能定位解析:C语言与C++(区别在哪里?)
java·c语言·开发语言·网络·c++·安全·信息可视化
kokunka1 小时前
C#类修饰符功能与范围详解
java·开发语言·c#
仟濹1 小时前
【Java 基础】3 面向对象 - this
java·开发语言·python