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);
    }
}
相关推荐
dishugj14 分钟前
HANA集群计划内切换与维护操作
java·linux·数据库
yuniko-n17 分钟前
【JUC】线程间通信
java·开发语言
yuniko-n19 分钟前
【JUC】关于 Java 线程介绍
java·开发语言
HelloWorld工程师23 分钟前
@Primary 注解
java·spring
代码什么用10 小时前
Spring基础使用
java·后端·spring
Su米苏11 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
夏幻灵11 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
码云数智-园园11 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁11 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网11 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端