leetcode 332. Reconstruct Itinerary

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kexiii/article/details/78248592
class Solution 
{
private:
    unordered_map<string,multiset<string>> connections;
    vector<string> res;

    void dfs(string cur)
    {
        while(!connections[cur].empty())
        {
            auto next_to_visit = *connections[cur].begin();
            connections[cur].erase(connections[cur].begin());
            dfs(next_to_visit);
        }
        res.push_back(cur);
    }

public:
    vector<string> findItinerary(vector<pair<string, string>> tickets) 
    {
        for(const auto& ticket : tickets )
        {
            connections[ticket.first].insert(ticket.second);
        }
        dfs("JFK");
        reverse(res.begin(),res.end());
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/Kexiii/article/details/78248592