美文网首页
332. 重新安排行程

332. 重新安排行程

作者: 名字是乱打的 | 来源:发表于2025-04-16 13:05 被阅读0次

一 题目:

二 思路:

  • 本题,从a出发的时候可能会去多个方向,方向不同有不一样的路径,比如这个JFK有俩方向

    因此需要用回溯

  • 一个票只能用一次,因此我们需要记录一下哪个票用过

三 代码:

  //路径顺序
    List<String> path=new LinkedList<>();
    //票使用顺序
    List<List<String>> res = new LinkedList<>();
    //used数组用于标记不能重复使用一张票
    boolean[] used = new boolean[301];

    public List<String> findItinerary(List<List<String>> tickets) {
        //先按字典序从小到大排列 降落地
        tickets.sort((o1,o2)->o1.get(1).compareTo(o2.get(1)));
        //起点
        path.add("JFK");
        search(tickets,"JFK");
        return res.get(0);

    }

    //从start开始搜寻路径
    private void search(List<List<String>> tickets, String start) {
        //因为这些航班肯定会有一条路线是正确的
        //所以我们加入path的size如果等于tickets.size()+1说明我们找到路线了
        if (path.size() == tickets.size() + 1) {
            res.add(new ArrayList<>(path));
            return;
        }

        for (int i = 0; i < tickets.size(); i++) {
            //如果起点是目标起点,且没用过
            if (tickets.get(i).get(0).equals(start) && !used[i]){
                //标记已使用
                used[i]=true;
                //加入终点
                String end = tickets.get(i).get(1);
                path.add(end);
                search(tickets, end);
                //移除该点,继续尝试看看有没有别的可能
                used[i]=false;
                path.remove(path.size()-1);
            }
        }
    }

相关文章

  • LeetCode 欧拉回路问题

    332. 重新安排行程 先搜再入栈 753. 破解保险箱

  • 力扣 332 重新安排行程

    题意:给一组机票,重新构建行程 思路: 用map记录每一个出发的城市和它能到达的城市,并用pq来给到达的城市从小到...

  • LeetCode332 重新安排行程

    给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进...

  • 算法:字符串

    Map 332 重新安排行程使用Map统计时写法: 字符串 Api of string.hstrlen: 返回值是...

  • LeetCode 第332题:重新安排行程

    1、前言 2、思路 本题是求有向图的欧拉路径,严谨地说,一个连通有向图 G 有欧拉路径,指存在一个顶点,从它出发,...

  • 332.

    时隔9年,又一次比较大的地震。让人的心总也停不下来。生命的意义再次浮上心头。地震虽然并没有直接威胁到自己,但是却让...

  • 2018年5月假期(5月1日)

    5月1日 清晨被大雨吵醒 想着白天的行程如何重新安排一下 睡得香香的朵儿和丫丫被憨憨唤醒来,洗漱出发。 早餐:赤壁...

  • 金刚书院《一万小时定律》瑜伽共修2018.6.18第149天分享

    记录这一天行程,检查整个的过程,哪些是需要重新安排的,规划第二天的生活,启动生命程序从早起瑜伽开始! 今早早起先给...

  • 重新安排

    发生的突发事件是给你提醒某些方面看似是平稳,还需要你多加注意。和女儿的关系觉得越来越顺畅了,这几天发生了一些事情...

  • 重新安排

    疫情在家,没了工作,没了赚钱,花钱也少了很多。 但有的必需品,会在网上,各种对比之后进行购买。 今晚我买的压缩袋到...

网友评论

      本文标题:332. 重新安排行程

      本文链接:https://www.haomeiwen.com/subject/urlebjtx.html