zoukankan      html  css  js  c++  java
  • leetcode1319 联通网络的操作次数

    思路:深搜求联通分量数

    熟练了二维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);
               }
           }
        }
    };
  • 相关阅读:
    LeetCode 225. 用队列实现栈 做题笔记
    杨辉三角
    字母图形
    01字符串
    圆的面积
    饮料和啤酒
    进制转换
    从今天起 复习算法
    乘法群
    Paillier同态加密的介绍以及c++实现
  • 原文地址:https://www.cnblogs.com/libin123/p/13272905.html
Copyright © 2011-2022 走看看