Skip to content

Commit adb12e3

Browse files
Create 1615. 最大网络秩.md
1 parent 060716d commit adb12e3

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

Graph/1615. 最大网络秩.md

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#### 1615. 最大网络秩
2+
3+
难度:中等
4+
5+
---
6+
7+
`n` 座城市和一些连接这些城市的道路 `roads` 共同组成一个基础设施网络。每个 `roads[i] = [ai, bi]` 都表示在城市 `ai``bi` 之间有一条双向道路。
8+
9+
两座不同城市构成的 **城市对****网络秩** 定义为:与这两座城市 **直接** 相连的道路总数。如果存在一条道路直接连接这两座城市,则这条道路只计算 **一次**
10+
11+
整个基础设施网络的 **最大网络秩** 是所有不同城市对中的 **最大网络秩**
12+
13+
给你整数 `n` 和数组 `roads`,返回整个基础设施网络的 **最大网络秩**
14+
15+
**示例 1:**
16+
17+
**![](https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/10/11/ex1.png)**
18+
19+
```
20+
输入:n = 4, roads = [[0,1],[0,3],[1,2],[1,3]]
21+
输出:4
22+
解释:城市 0 和 1 的网络秩是 4,因为共有 4 条道路与城市 0 或 1 相连。位于 0 和 1 之间的道路只计算一次。
23+
```
24+
25+
**示例 2:**
26+
27+
**![](https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/10/11/ex2.png)**
28+
29+
```
30+
输入:n = 5, roads = [[0,1],[0,3],[1,2],[1,3],[2,3],[2,4]]
31+
输出:5
32+
解释:共有 5 条道路与城市 1 或 2 相连。
33+
```
34+
35+
**示例 3:**
36+
37+
```
38+
输入:n = 8, roads = [[0,1],[1,2],[2,3],[2,4],[5,6],[5,7]]
39+
输出:5
40+
解释:2 和 5 的网络秩为 5,注意并非所有的城市都需要连接起来。
41+
```
42+
43+
**提示:**
44+
45+
* `2 <= n <= 100`
46+
* `0 <= roads.length <= n * (n - 1) / 2`
47+
* `roads[i].length == 2`
48+
* `0 <= ai, bi <= n-1`
49+
* `ai != bi`
50+
* 每对城市之间 **最多只有一条**  道路相连
51+
52+
---
53+
54+
邻接表:
55+
56+
构造邻接表再遍历所有点即可。
57+
58+
```Java
59+
class Solution {
60+
public int maximalNetworkRank(int n, int[][] roads) {
61+
List<Integer>[] arraylist = new List[n];
62+
for(int i = 0; i < n; i++){
63+
arraylist[i] = new ArrayList<>();
64+
}
65+
for(int i = 0; i < roads.length; i++){
66+
int a = roads[i][0], b = roads[i][1];
67+
arraylist[a].add(b);
68+
arraylist[b].add(a);
69+
}
70+
int ans = 0;
71+
for(int i = 0; i < n - 1; i++){
72+
for(int j = i + 1; j < n; j++){
73+
int temp = arraylist[i].size() + arraylist[j].size();
74+
if(arraylist[i].contains(j)) temp--;
75+
ans = Math.max(ans, temp);
76+
}
77+
}
78+
return ans;
79+
}
80+
}
81+
```

0 commit comments

Comments
 (0)