iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
自我挑戰組

leetcode題目分享系列 第 14

[Day 14] 332. Reconstruct Itinerary

  • 分享至 

  • xImage
  •  

這題使用許多資結技巧,
-hashtable用於紀錄tickets的起終點
-dfs用於深挖到從最起點至最終點
-heap(priority queue)用於把現在需要的一個一個推出

ref:https://leetcode.com/problems/reconstruct-itinerary/solutions/3973238/c-fast-code-18ms/?envType=daily-question&envId=2023-09-14

class Solution {
public:
    #define pq priority_queue<string , vector<string>, greater<string>>
    map<string, pq> mp;
    vector<string> ans;
    void dfs(string start){
        if(mp[start].size() == 0){
            ans.push_back(start);
            return ;
        }
        auto &s = mp[start];

        while(!s.empty()){
            auto tmp = s.top();
            s.pop();
            dfs(tmp);
        }
        ans.push_back(start);
    }
    vector<string> findItinerary(vector<vector<string>>& tickets) {
        mp.clear();
        ans.clear();

        for(auto i : tickets){
            mp[i[0]].push(i[1]);
        }

        dfs("JFK");

        reverse(begin(ans), end(ans));

        return ans;
    }
};

上一篇
[Day 13] 135. Candy
下一篇
[Day 15] 1584. Min Cost to Connect All Points
系列文
leetcode題目分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言