求解

代码如下: 问题,    vector<int> father=vector<int>(n,0);不报错,而使用vector<int> father(n,0);报错未定义的n?为什么?
class Solution {

private:
    int n=200005;
    vector<int> father=vector<int>(n,0);
    // vector<int> father(n,0);
    

    void init(){
        for(int i=0;i<n;i++){
            father[i]=i;
        }
        
    }

    int find(int u){
        return u==father[u]?u:find(father[u]);
    }

    bool isSame(int u,int v){
        u=find(u);
        v=find(v);

        return u==v;
    }

    void join(int u,int v){
        u=find(u);
        v=find(v);

        if(u==v) return;
        father[v]=u;
    }

public:

    
  

    bool validPath(int nn, vector<vector<int>>&amp; edges, int source, int destination) {

       
        init();
        
        for(int i=0;i<edges.size();i++){
           join(edges[i][0],edges[i][1]);
        }

        return isSame(source,destination);

    }
};
全部评论

相关推荐

高斯林的信徒:问你有没有保底,好人啊,就差把这是kpi面告诉你了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务