Minimum Degree of a Connected Trio in a Graph LeetCode solution in C++

1
class Solution {
2
public:
3
int minTrioDegree(int n, vector<vector<int>> &edges) {
4
vector<unordered_set<int>> adj(n + 1);
5
int res = INT_MAX;
6
for (vector<int> &edge : edges) {
7
adj[edge[0]].insert(edge[1]);
8
adj[edge[1]].insert(edge[0]);
9
}
10

11
for (int i = 1; i < n; ++i) {
12
for (auto iter1 = adj[i].begin(); iter1 != adj[i].end(); ++iter1) {
13
if (*iter1 <= i) continue;
14
for (auto iter2 = adj[i].begin(); iter2 != adj[i].end(); ++iter2) {
15
int u = *iter1, v = *iter2;
16
if (v <= u) continue;
17
if (adj[u].count(v)) {
18
int cur = adj[i].size() + adj[u].size() + adj[v].size() - 6;
19
res = min(res, cur);
20
}
21
}
22
}
23
}
24

25
return res == INT_MAX ? -1 : res;
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0