求解

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

    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
苍蓝星上艾露:这简历。。。可以试试我写的开源简历优化工具https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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