Degrees + matrix, all pairs
Time O(n² + E) Space O(n²)Count degrees and fill a boolean matrix. Try every pair.
class Solution {
public int maximalNetworkRank(int n, int[][] roads) {
int[] deg = new int[n];
boolean[][] connected = new boolean[n][n];
for (int[] r : roads) {
deg[r[0]]++; deg[r[1]]++;
connected[r[0]][r[1]] = connected[r[1]][r[0]] = true;
}
int best = 0;
for (int a = 0; a < n; a++)
for (int b = a + 1; b < n; b++)
best = Math.max(best, deg[a] + deg[b] - (connected[a][b] ? 1 : 0));
return best;
}
}Verdict: n ≤ 100 makes the matrix the right tool.