首页 > 移动平台 > 详细

leetcode1319 联通网络的操作次数

时间:2020-07-09 12:36:08      阅读:71      评论:0      收藏:0      [点我收藏+]

思路:深搜求联通分量数

熟练了二维vector的初始化以及图的邻接表思想。

技术分享图片

 

 

class Solution {
public:
    int makeConnected(int n, vector<vector<int>>& connections) {
        if(connections.size()<(n-1))
        {
            return -1;
        }
        vector<int> visit(n,0);
        vector<vector<int>> edges(n);
        for(int i=0;i<connections.size();i++)
        {
            vector<int> temp=connections[i];
            edges[temp[0]].push_back(temp[1]);
            edges[temp[1]].push_back(temp[0]);
        }
        int number=0;
        for(int i=0;i<n;i++)
        {
            if(visit[i]==0)
            {
                number++;
                DFS(i,visit,edges);
            }
        }
        return number-1;
    }
    void DFS(int index,vector<int> & visit,vector<vector<int>> & edges)
    {
       visit[index]=1;
       for(int i=0;i<edges[index].size();i++)
       {
           if(visit[edges[index][i]]==0)
           {
               DFS(edges[index][i],visit,edges);
           }
       }
    }
};

 

leetcode1319 联通网络的操作次数

原文:https://www.cnblogs.com/libin123/p/13272905.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!