Skip to content

Commit d16f509

Browse files
authored
Create minimum-degree-of-a-connected-trio-in-a-graph.py
1 parent 0f4eed6 commit d16f509

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Time: O(n^3)
2+
# Space: O(n^2)
3+
4+
class Solution(object):
5+
def minTrioDegree(self, n, edges):
6+
"""
7+
:type n: int
8+
:type edges: List[List[int]]
9+
:rtype: int
10+
"""
11+
adj = [set() for _ in xrange(n+1)]
12+
degree = [0]*(n+1)
13+
for u, v in edges:
14+
adj[min(u, v)].add(max(u, v))
15+
degree[u] += 1
16+
degree[v] += 1
17+
result = float("inf")
18+
for u in xrange(1, n+1):
19+
for v in adj[u]:
20+
for w in adj[u]:
21+
if v < w and w in adj[v]:
22+
result = min(result, degree[u]+degree[v]+degree[w] - 6)
23+
return result if result != float("inf") else -1

0 commit comments

Comments
 (0)