problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::number_of_operations_to_make_network_connected::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static void dfs (int &edge_cnt, int &node_cnt, unordered_set< int > &vis, int node, vector< unordered_set< int > > &g)
 
static int makeConnected (int n, vector< vector< int > > &connections)
 

详细描述

在文件 leetcode.h2918 行定义.

成员函数说明

◆ dfs()

void leetcode::number_of_operations_to_make_network_connected::Solution::dfs ( int &  edge_cnt,
int &  node_cnt,
unordered_set< int > &  vis,
int  node,
vector< unordered_set< int > > &  g 
)
static

在文件 leetcode.cpp8129 行定义.

8129 {
8130 node_cnt++;
8131 edge_cnt += g[node].size();
8132 vis.insert(node);
8133 for(auto next: g[node]) {
8134 if(!vis.contains(next)) {
8135 dfs(edge_cnt, node_cnt, vis, next, g);
8136 }
8137 }
8138 }
static void dfs(int &edge_cnt, int &node_cnt, unordered_set< int > &vis, int node, vector< unordered_set< int > > &g)
Definition: leetcode.cpp:8129

引用了 dfs().

被这些函数引用 dfs() , 以及 makeConnected().

◆ makeConnected()

int leetcode::number_of_operations_to_make_network_connected::Solution::makeConnected ( int  n,
vector< vector< int > > &  connections 
)
static

在文件 leetcode.cpp8105 行定义.

8105 {
8106 vector<unordered_set<int>> g(n);
8107 for(auto &connection: connections) {
8108 g[connection[0]].insert(connection[1]);
8109 g[connection[1]].insert(connection[0]);
8110 }
8111 int group_cnt = 0;
8112 int free_edges_cnt = 0;
8113 unordered_set<int> vis;
8114 for(int i = 0; i < n; i++) {
8115 if(!vis.contains(i)) {
8116 int edge_cnt = 0;
8117 int node_cnt = 0;
8118 dfs(edge_cnt, node_cnt, vis, i, g);
8119 group_cnt++;
8120 free_edges_cnt += edge_cnt / 2 - node_cnt + 1;
8121 }
8122 }
8123 if(free_edges_cnt < group_cnt - 1) {
8124 return -1;
8125 }
8126 return group_cnt - 1;
8127 }

引用了 dfs().

被这些函数引用 leetcode::number_of_operations_to_make_network_connected::TEST().


该类的文档由以下文件生成: