class Solution {
public:
unordered_map<string, map<string, int>> targets;
vector<string> findItinerary(vector<vector<string>>& tickets) {
vector<string> a = {"JFK"};
vector<string>ans = { "JFK" };
for (const vector<string>& vec : tickets)
targets[vec[0]][vec[1]] ++;
bakctracking(ans, tickets, targets);
return ans;
}
bool bakctracking(vector<string>&ans, vector<vector<string>>& tickets, unordered_map<string, map<string, int>> targets) {
string front = "";
if (ans.size() == tickets.size() + 1)
return true;
for (pair<const string, int>& target:targets[ans[ans.size() - 1]]) {
if (target.second>0) {
ans.push_back(target.first);
target.second--;
if (bakctracking(ans, tickets, targets))return true;
ans.pop_back();
target.second++;
}
}
return false;
}
};
LeetCode 332. 重新安排行程
最新推荐文章于 2023-05-17 11:39:00 发布