題目描述:
n 座城市和一些連線這些城市的道路 roads 共同組成乙個基礎設施網路。每個 roads[i] = [ai, bi] 都表示在城市 ai 和 bi 之間有一條雙向道路。
兩座不同城市構成的 城市對 的 網路秩 定義為:與這兩座城市 直接 相連的道路總數。如果存在一條道路直接連線這兩座城市,則這條道路只計算 一次 。
整個基礎設施網路的 最大網路秩 是所有不同城市對中的 最大網路秩 。
給你整數 n 和陣列 roads,返回整個基礎設施網路的 最大網路秩 。
示例 1:
輸入:n = 4, roads = [[0,1],[0,3],[1,2],[1,3]]
輸出:4
解釋:城市 0 和 1 的網路秩是 4,因為共有 4 條道路與城市 0 或 1 相連。位於 0 和 1 之間的道路只計算一次。
示例 2:
輸入:n = 5, roads = [[0,1],[0,3],[1,2],[1,3],[2,3],[2,4]]
輸出:5
解釋:共有 5 條道路與城市 1 或 2 相連。
示例 3:
輸入:n = 8, roads = [[0,1],[1,2],[2,3],[2,4],[5,6],[5,7]]
輸出:5
解釋:2 和 5 的網路秩為 5,注意並非所有的城市都需要連線起來。
2 <= n <= 100
0 <= roads.length <= n * (n - 1) / 2
roads[i].length == 2
0 <= ai, bi <= n-1
ai != bi
每對城市之間 最多只有一條 道路相連
方法1:
(1)統計各個結點直接相連的結點的數量,然後使用數量進行降序排序;
(2)然後盡量使用連線結點更多結點進行統計;
(3)注意最多的連線結點之間是否相連的問題;
class
solution
unordered_set st;
for(vector<
int>
&road:roads)
sort
(counts.
begin()
,counts.
end(),
(pair<
int,
int>
&lhs,pair<
int,
int>
&rhs));
//最多結點不止乙個的情形
if(counts[0]
.first==counts[1]
.first)
for(
int i=
0;i++i)}}
return res;
}else
for(
int i=
1;i++i)
}return res;
}return0;}};
方法2:class
solution
int res=0;
for(
int i=
0;i++i)
}return res;}}
;
1615 最大網路秩
1615.最大網路秩 n 座城市和一些連線這些城市的道路 roads 共同組成乙個基礎設施網路。每個 roads i ai,bi 都表示在城市 ai 和 bi 之間有一條雙向道路。兩座不同城市構成的 城市對 的 網路秩 定義為 與這兩座城市 直接 相連的道路總數。如果存在一條道路直接連線這兩座城市,...
LeetCode 1615 最大網路秩(出入度)
n 座城市和一些連線這些城市的道路 roads 共同組成乙個基礎設施網路。每個roads i ai,bi 都表示在城市 ai 和 bi 之間有一條雙向道路。兩座不同城市構成的城市對的網路秩定義為 與這兩座城市直接相連的道路總數。如果存在一條道路直接連線這兩座城市,則這條道路只計算 一次。整個基礎設施...
leetcode千題 5536 最大網路秩
n 座城市和一些連線這些城市的道路 roads 共同組成乙個基礎設施網路。每個 roads i ai,bi 都表示在城市 ai 和 bi 之間有一條雙向道路。兩座不同城市構成的 城市對 的 網路秩 定義為 與這兩座城市 直接 相連的道路總數。如果存在一條道路直接連線這兩座城市,則這條道路只計算 一次...