当前位置: 首页 > 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;
    }
};

相关文章:

  • 基于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-构建交互式按钮
  • 中国金茂向滨江集团提供11.21亿元诚意金借款,拟合作开发3月获取的地块
  • 摩天大楼天津117大厦复工背后:停工近十年,未知挑战和压力仍在
  • 证监会副主席王建军被查
  • 澎湃回声丨23岁小伙“被精神病”8年续:今日将被移出“重精”管理系统
  • 辽宁省委书记、省长连夜赶赴辽阳市白塔区火灾事故现场,指导善后处置工作
  • 郭继孚被撤销全国政协委员资格,此前为北京交通发展研究院长