初尝并查集,直接套用模板
class Solution {
private:vector<int> father;void init() {for(int i=0;i<father.size();i++)father[i]=i;}int find(int v) {return v==father[v]?v:father[v]=find(father[v]);//路径压缩}bool isSame(int u,int v){u=find(u);v=find(v);return u==v;}//将v->u这条边加入到并查集中void join(int u,int v) {u=find(u);v=find(v);if(u==v) return;elsefather[v]=u;}
public:bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {father=vector<int>(n);this->init();for(int i=0;i<edges.size();i++){int u=edges[i][0];int v=edges[i][1];this->join(u,v);}return this->isSame(source,destination);}
};