求解

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

    }
};
全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
黑皮白袜臭脚体育生:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
03-18 01:22
门头沟学院 Java
多多爱我我爱多多:linkedList 替换 arrayList 是怎么实现20倍提升的 好奇
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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