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);
    }
}
相关推荐
玄〤5 分钟前
枚举问题的两大利器:深度优先搜索(DFS)与下一个排列(Next Permutation)算法详解(Java版本)(漫画解析)
java·算法·深度优先·dfs
wuqingshun3141599 分钟前
HashMap的长度为什么是2的N次方呢?
java·开发语言·jvm
52Hz11819 分钟前
力扣33.搜索旋转排序数组、153.寻找排序数组中的最小值
python·算法·leetcode
indexsunny23 分钟前
互联网大厂Java面试实录:Spring Boot与微服务在电商场景中的应用
java·jvm·spring boot·微服务·面试·mybatis·电商
予枫的编程笔记27 分钟前
【Kafka基础篇】Kafka高可用核心:ISR机制与ACK策略详解,吃透可靠性与吞吐量权衡
java·kafka·消息队列·高可用·分布式系统·isr机制·ack策略
时730 分钟前
Java 版本管理工具:Jabba
java
开源fly33 分钟前
Java泛型和类型擦除
java
Mr -老鬼35 分钟前
RustSalvo框架上传文件接口(带参数)400错误解决方案
java·前端·python
日月云棠37 分钟前
各版本JDK对比:JDK 21 特性详解
java
人道领域40 分钟前
SpringBoot整合Junit与Mybatis实战
java·spring boot·后端