Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int makeConnected(int n, vector<vector<int>>& connections) {
- if(connections.size() < n-1) return -1;
- int components = 0;
- vector<vector<int>> g;
- g.resize(n);
- for(auto edge: connections){
- g[edge[0]].push_back(edge[1]);
- g[edge[1]].push_back(edge[0]);
- }
- vector<bool> vis(n, false);
- for(int i=0; i<n; i++)
- if(!vis[i])
- dfs(i, g, vis), components++;
- return components-1;
- }
- void dfs(int node, vector<vector<int>> &g, vector<bool> &vis){
- vis[node] = true;
- for(int child: g[node])
- if(!vis[child])
- dfs(child, g, vis);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement