332.重新安排行程
给定一个机票的字符串二维数组 [from, to]
,子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。
说明:
- 如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前
- 所有的机场都用三个大写字母表示(机场代码)。
- 假定所有机票至少存在一种合理的行程。
示例 1:
输入: [["MUC", "LHR"], ["JFK", "MUC"], ["SFO", "SJC"], ["LHR", "SFO"]]
输出: ["JFK", "MUC", "LHR", "SFO", "SJC"]
示例 2:
输入: [["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]]
输出: ["JFK","ATL","JFK","SFO","ATL","SFO"]解释: 另一种有效的行程是 ["JFK","SFO","ATL","JFK","ATL","SFO"]。但是它自然排序更大更靠后。
class Solution {
public:
vector<string> findItinerary(vector<pair<string, string>> tickets) {
vector<string> res;
unordered_map<string, multiset<string>> m;
for (auto a : tickets) {
m[a.first].insert(a.second);
}
dfs(m, "JFK", res);
return vector<string> (res.rbegin(), res.rend());
}
void dfs(unordered_map<string, multiset<string>>& m, string s, vector<string>& res) {
while (m[s].size()) {
string t = *m[s].begin();
m[s].erase(m[s].begin());
dfs(m, t, res);
}
res.push_back(s);
}
};
332.重新安排行程相关推荐
- 代码随想录30——回溯:332重新安排行程、51N皇后、37解数独
文章目录 1.332重新安排行程 1.1.题目 1.2.解答 1.2.1.思路 1.2.2.代码 2.51N皇后 2.1.题目 2.2.解答 3.37解数独 3.1.题目 3.2.解答 3.2.1.正 ...
- 「leetcode」332.重新安排行程【回溯算法/深搜】详细图解!
本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...
- LeetCode刷题流程:回溯算法-13.332. 重新安排行程
332. 重新安排行程 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序.所有这些机票都属于一个从 JFK(肯尼迪国际机 ...
- 代码随想录算法训练营第30天 | 51. N皇后 37.解数独 332.重新安排行程 回溯篇小结
代码随想录系列文章目录 回溯篇 - 棋盘问题 图的dfs 文章目录 代码随想录系列文章目录 51.N皇后 37.解数独 332.重新安排行程 回溯篇小结 51.N皇后 题目链接 这道题的思路是什么样的 ...
- 代码随想录算法训练营第30天| 332.重新安排行程 、51. N皇后 、 37. 解数独
代码随想录算法训练营第30天| 332.重新安排行程 .51. N皇后 . 37. 解数独 332.重新安排行程 开始想的是将行程进行全排列之后,然后选出一个字典排序最小的.就也是使用的回溯的思路. ...
- 代码随想录算法训练营第三十天| 第七章 回溯算法:332.重新安排行程,51.N皇后,37.解数独(python)
回溯算法总结 332.重新安排行程 讲解链接 class Solution:def __init__(self):self.res = []self.dict = defaultdict(list)d ...
- 代码随想录【Day 30】| 332.重新安排行程 、51. N皇后 、37. 解数独
代码随想录[Day 30] | 332.重新安排行程 .51. N皇后 .37. 解数独 332.重新安排行程 题目链接:332.重新安排行程 卡尔文解 解题思路及注意事项: 代码实现: 51. N皇 ...
- 【LeetCode】332. 重新安排行程
[LeetCode]332. 重新安排行程 前言 最近在刷回溯专题的题目,前几种题型(排列.组合.子集.子序列)如果直接套用模板,加一些剪枝,随便过的那种 但是这一题如果带入普通的回溯模板,可能无从下 ...
- 回溯算法模板之:332. 重新安排行程
题目链接:332.重新安排行程 分析:需要重新排列行程,并且需要按照自然排序的大小,所以第一步就先进行字典的创建,key是起始地,value是可到达所有的目的地,然后对value进行排序.使用回溯算法 ...
- 回溯 | 19 332.重新安排行程(hard)**
本文记录的是刷题过程中的重要概念和笔记.如有侵权,请联系删除. 目录 332.重新安排行程 思路 死循环 记录映射关系 回溯法 c++ 补充:const 总结 332.重新安排行程 力扣题目链接(op ...
最新文章
- 【一】TSP、VRP、VRP模型介绍
- JavaScript类——鼠标点击下笑脸变化
- VMware Virtual SAN存储设计规划
- icu入院宣教流程图_ICU患者及家属的健康教育PPT.ppt
- 12家股份银行当中,哪个盈利能力和口碑是最好的?
- MFC中卡拉OK字体的定时器实现,使用DC的DrawText函数实现
- date js 半年_moment.js 搜索栏获取最近一周,一个月,三个月,半年,一年时间
- Nginx支持WebSocket反向代理-学习小结
- lintcode: 左填充
- N81新手入门全攻略——N81常规设置问答篇
- vcpkg: bootstrap-vcpkg.bat下载失败问题
- 手机WIFI传文件到局域网服务器,局域网内手机和电脑怎么实现无线传输文件?
- 王者荣耀1-HTMLCSS教案
- 公司HP-EVA4400存储硬盘离线数据恢复方法
- vue-cli之加载ico文件
- 下载网页上的视频—Flash Video Downloader插件
- 教你使用晨曦记账本,登记管理借还款
- FIREFOX打不开GMAIL问题解决
- 仿bugtags实现App线上Crash监控及问题复现
- Hibernate中发生Session is closed 的另一种可能
热门文章
- Oracle单实例数据库迁移到Oracle RAC 环境之(2)--实施篇
- 静态库与动态库的制作
- JavaScript_高程三_01
- 关于TP模板的目录设置和渲染问题
- .NET MVC4 本地正常 部署 服务器错误
- Spring Boot入门(2)-项目属性配置
- 百元百鸡 //构造结构体变量
- ssh 切换用户_从零开始学习华为路由交换 | 配置ssh远程管理
- python处理pdf的第三方库_Python使用到第三方库PyMuPDF图片与pdf相互转换
- html合并单元格_HTML基础2