Class Solution
java.lang.Object
g1601_1700.s1615_maximal_network_rank.Solution
1615 - Maximal Network Rank.<p>Medium</p>
<p>There is an infrastructure of <code>n</code> cities with some number of <code>roads</code> connecting these cities. Each <code>roads[i] = [a<sub>i</sub>, b<sub>i</sub>]</code> indicates that there is a bidirectional road between cities <code>a<sub>i</sub></code> and <code>b<sub>i</sub></code>.</p>
<p>The <strong>network rank</strong> of <strong>two different cities</strong> is defined as the total number of <strong>directly</strong> connected roads to <strong>either</strong> city. If a road is directly connected to both cities, it is only counted <strong>once</strong>.</p>
<p>The <strong>maximal network rank</strong> of the infrastructure is the <strong>maximum network rank</strong> of all pairs of different cities.</p>
<p>Given the integer <code>n</code> and the array <code>roads</code>, return <em>the <strong>maximal network rank</strong> of the entire infrastructure</em>.</p>
<p><strong>Example 1:</strong></p>
<p><strong><img src="https://assets.leetcode.com/uploads/2020/09/21/ex1.png" alt="" /></strong></p>
<p><strong>Input:</strong> n = 4, roads = [[0,1],[0,3],[1,2],[1,3]]</p>
<p><strong>Output:</strong> 4</p>
<p><strong>Explanation:</strong> The network rank of cities 0 and 1 is 4 as there are 4 roads that are connected to either 0 or 1. The road between 0 and 1 is only counted once.</p>
<p><strong>Example 2:</strong></p>
<p><strong><img src="https://assets.leetcode.com/uploads/2020/09/21/ex2.png" alt="" /></strong></p>
<p><strong>Input:</strong> n = 5, roads = [[0,1],[0,3],[1,2],[1,3],[2,3],[2,4]]</p>
<p><strong>Output:</strong> 5</p>
<p><strong>Explanation:</strong> There are 5 roads that are connected to cities 1 or 2.</p>
<p><strong>Example 3:</strong></p>
<p><strong>Input:</strong> n = 8, roads = [[0,1],[1,2],[2,3],[2,4],[5,6],[5,7]]</p>
<p><strong>Output:</strong> 5</p>
<p><strong>Explanation:</strong> The network rank of 2 and 5 is 5. Notice that all the cities do not have to be connected.</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>2 <= n <= 100</code></li>
<li><code>0 <= roads.length <= n * (n - 1) / 2</code></li>
<li><code>roads[i].length == 2</code></li>
<li><code>0 <= a<sub>i</sub>, b<sub>i</sub> <= n-1</code></li>
<li><code>a<sub>i</sub> != b<sub>i</sub></code></li>
<li>Each pair of cities has <strong>at most one</strong> road connecting them.</li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
maximalNetworkRank
public int maximalNetworkRank(int n, int[][] roads)
-