当前位置: 首页 > news >正文

力扣-回溯-332 重新安排行程

思路

要完成对当前机场和目标机场的数据定义,要用出发机场映射到目标机场,而且出发机场可能有多个,所以要使用unordered_map作为外部容器,由于同一个出发机场到目标机场,需要先到string小的目标机场尝试,所以用map记录目标机场以及当前航班的次数

回溯时,先从字母序小的机场开始尝试,一旦获取到一个结果后就返回true,让剩下的回溯不再进行。

代码

class Solution {
public:
    vector<string> result;
    unordered_map< string, map<string, int> > targets;
    bool backtracking(int tickNum){
        if(result.size() == tickNum + 1){
            return true;
        }

        for(pair< const string, int> &target : targets[result[result.size()-1]]){
            if(target.second > 0){
                result.push_back(target.first);
                target.second--;
                if( backtracking(tickNum)) return true;
                result.pop_back();
                target.second++;
            }
        } 

        return false;
    }
    vector<string> findItinerary(vector<vector<string>>& tickets) {
        for( const vector<string> vec: tickets){
            targets[vec[0]][vec[1]]++;
        }
        result.push_back("JFK");
        backtracking(tickets.size());

        return result;
    }
};


文章转载自:
http://ascendance.bdypl.cn
http://beggardom.bdypl.cn
http://aforetime.bdypl.cn
http://antistat.bdypl.cn
http://anemology.bdypl.cn
http://adipose.bdypl.cn
http://botanist.bdypl.cn
http://cafetorium.bdypl.cn
http://betweenmaid.bdypl.cn
http://aerenchyma.bdypl.cn
http://bobolink.bdypl.cn
http://anaplasia.bdypl.cn
http://backsword.bdypl.cn
http://antioch.bdypl.cn
http://carrageenan.bdypl.cn
http://cembra.bdypl.cn
http://breakout.bdypl.cn
http://booking.bdypl.cn
http://boston.bdypl.cn
http://atopy.bdypl.cn
http://bimillennial.bdypl.cn
http://bashaw.bdypl.cn
http://analogic.bdypl.cn
http://armadillo.bdypl.cn
http://ahold.bdypl.cn
http://caltech.bdypl.cn
http://chinar.bdypl.cn
http://catcall.bdypl.cn
http://cardholder.bdypl.cn
http://ambrotype.bdypl.cn
http://www.dtcms.com/a/33021.html

相关文章:

  • 基于Flask的短视频流量数据可视化系统的设计与实现
  • 高速PCB电源层
  • Linux 使用nload 监控网络流量
  • Git入门:数据模型 to 底层原理
  • MQTT实现智能家居------2、写MQTT程序的思路
  • 电子技能大赛选题
  • 腿足机器人之十二-manipulation
  • 超过7万个AOI(地理围栏),北京市2025年2月15日更新的全类别AOI,本地矢量数据(全国22个超大特大城市AOI更新系列)
  • 【免费】1991-2017年地级以上城市气候数据
  • go-zero学习笔记(五)
  • 【Web RCE 漏洞常见类型】
  • [git]GIT提交带GPG签名改动到GITEE的配置方法
  • 骁勇善战的量化利器:多因子模型【量化理论】
  • Vue 中单向数据流原则
  • 2025-spring boot 之多数据源管理
  • HyperGraph(超图)
  • 【Redis数据结构】ziplist 压缩列表
  • nginx 反向代理 配置请求路由
  • 【网络编程】广播和组播
  • 【RK3588嵌入式图形编程】-SDL2-构建交互式按钮
  • 基于python+django的宠物商店-宠物管理系统源码+运行步骤
  • J4打卡—— ResNet 和 DenseNet结合实现鸟类分类
  • 用AI写游戏3——deepseek实现kotlin android studio greedy snake game 贪吃蛇游戏
  • 【quicker】调节PPT指定字号字体大小/快速调节WPS的PPT字体大小
  • 三级分类bug解决
  • 作用域的知识点总结
  • Day6 高精度加减算法+洛谷讲解
  • 开源RAG主流框架有哪些?如何选型?
  • 算法系列之分治算法
  • 从底层驱动到 OpenCV:深入解析 Linux 摄像头完整技术栈