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);
    }
}
相关推荐
小猪配偶儿_oaken1 分钟前
SpringBoot实现单号生成功能(Java&若依)
java·spring boot·okhttp
宋情写2 分钟前
JavaAI04-RAG
java·人工智能
毕设源码-钟学长5 分钟前
【开题答辩全过程】以 中医健康管理系统为例,包含答辩的问题和答案
java
susu10830189115 分钟前
docker部署 Java 项目jar
java·docker·jar
Haooog6 分钟前
LangChain4j 学习
java·学习·大模型·langchain4j
爬山算法7 分钟前
Hibernate(25)Hibernate的批量操作是什么?
java·后端·hibernate
2501_941875288 分钟前
从日志语义到可观测性的互联网工程表达升级与多语言实践分享随笔
java·前端·python
高山上有一只小老虎10 分钟前
小红的字符串
java·算法
星火开发设计16 分钟前
折半插入排序原理与C++实现详解
java·数据结构·c++·学习·算法·排序算法·知识