2
public int minTrioDegree(int n, int[][] edges) {3
// to store edge information4
boolean[][] graph = new boolean[n + 1][n + 1];5
// to store inDegrees to a node(NOTE: here inDegree and outDegree are same because it is7
int[] inDegree = new int[n + 1];9
for (int[] edge : edges) {10
graph[edge[0]][edge[1]] = true;11
graph[edge[1]][edge[0]] = true;17
int result = Integer.MAX_VALUE;18
for (int i = 1; i <= n; i++) {19
for (int j = i + 1; j <= n; j++) {21
for (int k = j + 1; k <= n; k++) {22
if (graph[i][k] && graph[j][k]) {23
result = Math.min(result, inDegree[i] + inDegree[j] + inDegree[k] - 6);30
return result == Integer.MAX_VALUE ? -1 : result;