例子:
看不懂,直接暴力解法保存所有连通三元组,再遍历三元组的度数,取最小的即可。
代码如下:
class Solution {
public int minTrioDegree(int n, int[][] edges) {
int[][] edge = new int[n + 1][n + 1];
int[] grade = new int[n + 1];
for (int i = 0; i < edges.length; i++) {
int l = edges[i][0], r = edges[i][1];
edge[l][r] = 1;
edge[r][l] = 1;
grade[l]++;
grade[r]++;
}
int result = Integer.MAX_VALUE;
for (int i = 0; i < edge.length; i++) {
for (int j = i + 1; j < edge.length; j++) {
if (edge[i][j] == 1) {
for (int k = j + 1; k < edge.length; k++) {
if (edge[i][k] == 1 && edge[j][k] == 1) {
result = Math.min(result, grade[i] + grade[j] + grade[k] - 6);
}
}
}
}
}
return result == Integer.MAX_VALUE ? -1 : result;
}
}