leetcode Reconstruct Itinerary
来源:互联网 发布:阿里云金融云vpc专线 编辑:程序博客网 时间:2024/06/07 16:31
leetcode Reconstruct Itinerary
Given a list of airline tickets represented by pairs of departure and arrival airports [from, to]
, reconstruct the itinerary in order. All of the tickets belong to a man who departs from JFK
. Thus, the itinerary must begin with JFK
.
Note:
- If there are multiple valid itineraries, you should return the itinerary that has the smallest lexical order when read as a single string. For example, the itinerary
["JFK", "LGA"]
has a smaller lexical order than["JFK", "LGB"]
. - All airports are represented by three capital letters (IATA code).
- You may assume all tickets may form at least one valid itinerary.
Example 1:tickets
= [["MUC", "LHR"], ["JFK", "MUC"], ["SFO", "SJC"], ["LHR", "SFO"]]
Return ["JFK", "MUC", "LHR", "SFO", "SJC"]
.
Example 2:tickets
= [["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]]
Return ["JFK","ATL","JFK","SFO","ATL","SFO"]
.
Another possible reconstruction is ["JFK","SFO","ATL","JFK","ATL","SFO"]
. But it is larger in lexical order.
原文地址:https://www.hrwhisper.me/leetcode-reconstruct-itinerary/
更多题解可以查看:https://www.hrwhisper.me/leetcode-algorithm-solution/
class Solution {public:vector<string> findItinerary(vector<pair<string, string>> tickets) {unordered_map<string, map<string,int>> m;for (const auto &p : tickets) {m[p.first][p.second]++;}string start = "JFK";vector<string> ans;ans.push_back(start);dfs(start, ans, tickets.size()+ 1, m);return ans;}bool dfs(const string & cur,vector<string> &ans,const int &n,unordered_map<string, map<string, int>> &m) {if (ans.size() == n) return true;for (auto ticket = m[cur].begin(); ticket != m[cur].end(); ticket++) { //map<string, int>::iteratorif (ticket->second != 0) {ticket->second--;ans.push_back(ticket->first);if (dfs(ticket->first, ans, n, m)) return true;ans.pop_back();ticket->second++;}}return false;}};
出处:细语呢喃 > leetcode Reconstruct Itinerary
原文地址:https://www.hrwhisper.me/leetcode-reconstruct-itinerary/
- leetcode Reconstruct Itinerary
- *[LeetCode]332. Reconstruct Itinerary
- leetcode 332. Reconstruct Itinerary
- [LeetCode 332] Reconstruct Itinerary
- LeetCode 332 : Reconstruct Itinerary
- leetcode笔记:Reconstruct Itinerary
- LeetCode *** 332. Reconstruct Itinerary
- leetcode reconstruct-itinerary
- LeetCode 332. Reconstruct Itinerary
- 【Leetcode】Reconstruct Itinerary
- LeetCode No332. Reconstruct Itinerary
- leetcode 332 Reconstruct Itinerary
- leetcode 332. Reconstruct Itinerary
- LeetCode[332] Reconstruct Itinerary
- [leetcode] 332. Reconstruct Itinerary
- Leetcode 332. Reconstruct Itinerary
- Leetcode 332. Reconstruct Itinerary
- [LeetCode] Reconstruct Itinerary
- HDU 5513 Efficient Tree 生成树计数+状态压缩
- 借助互斥量和条件变量实现读写锁
- Codeforces Wunder fund 618ABCDEF
- c3p0数据库连接池的使用详解
- 重基础活应用——智能家居的基础在哪里
- leetcode Reconstruct Itinerary
- 16 SequenceInputStream、PrintStream、Properties、递归、编码
- c++中int a, int *a=new int和 int *a=new int()
- kruskal算法
- 算法之美_源代码发布(11)——完结篇
- Android ViewPager+Fragment
- MFC CListView/CListCtrl OnSize时自动排列图标(尽量不出现滚动条)
- 三大简单排序算法(java)
- ##c提高篇## 第二课 体验函数【项目1-7】