求解

代码如下: 问题,    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);

    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务