题解 | #城市群数量#

城市群数量

https://www.nowcoder.com/practice/71cde4dee669475f94d8d38832374ada

class Solution {
public:
    int find(vector<int> &father,int i){
        if(father[i]==i) return i;
        else return father[i]=find(father,father[i]);//记忆化搜索
    }//找到节点i的根节点
    int citys(vector<vector<int> >& m) {
        int n=m.size();
        vector<int> father(n,0);
        for(int i=0;i<n;i++){
            father[i]=i;//定义初始每个节点的父节点是自己
        }
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(m[i][j]==1&&find(father,i)!=find(father,j)){
                    father[find(father,j)]=find(father,i);
                    //注意这里的逻辑是把j的根节点指向i的根节点,不是只移动父节点
                }
            }
        }
        vector<int> a(n,0);
        for(int k=0;k<n;k++){
            a[find(father,k)]=1;//
        }
        int ans=0;
        for(int k=0;k<n;k++){
            ans+=a[k];
        }
        return ans;
    }
};

全部评论

相关推荐

2024-12-31 11:16
已编辑
北京邮电大学 Java
KalznAsawind:标准的八股问烂简历,面试官碰到这种简历一般都会开始轰炸八股了。其实我一直觉得项目、实习的作用是将面试官困在你的语境中,在你的语境中跟他解释项目背景和细节,跟他battle,减少他轰炸你八股的时间,这样压力会小很多。但是你的项目是一眼无落地、无背景的包装项目,所以对方也不会去在意你的项目背景,只会针对你的项目涉及的技术栈开始轰炸八股,会增大你的压力,而你面试过不过全看你八股背的熟不熟。
点赞 评论 收藏
分享
2024-12-11 09:14
门头沟学院 软件测试
2025毕业等一个offer:女生终于扳回一局
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务