684. Redundant Connection

https://leetcode.com/problems/redundant-connection/description/

Use map to do Union Find.

class Solution {
public:
    vector<int> findRedundantConnection(vector<vector<int>>& edges) {
        unordered_map<int,int> parent;
        for (const auto& e : edges) {
            int p = findParent(parent, e[0]);
            int c = findParent(parent, e[1]);
            if (p == c)
                return e;
            parent[c] = p;
        }
        return vector<int>();
    }
    int findParent(unordered_map<int,int>& parents, int child) {
        while (parents.count(child))
            child = parents[child];
        return child;
    }
};

 

posted @ 2018-05-04 15:43  JTechRoad  阅读(112)  评论(0编辑  收藏  举报