| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 
 | class Solution {public int maximalNetworkRank(int n, int[][] roads) {
 Map<Integer, Set<Integer>> graph = new HashMap<>();
 for(int i = 0; i < n; i++){
 graph.put(i, new HashSet<Integer>());
 }
 
 for(int[] road: roads){
 int a = road[0];
 int b = road[1];
 graph.get(a).add(b);
 graph.get(b).add(a);
 }
 
 int result = 0;
 
 
 for(int i = 0; i < n; i++){
 for(int j = i+1; j < n; j++){
 int ans = 0;
 ans += graph.get(i).size();
 ans += graph.get(j).size();
 
 if(graph.get(i).contains(j)){
 ans -= 1;
 }
 result = Math.max(result, ans);
 }
 }
 
 return result;
 }
 }
 
 |