解答代码:
class Solution {
public:
int maximalNetworkRank(int n, vector
int res = 0;
int matrix[n][n];
int count[n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = 0;
}
count[i] = 0;
}
for (int i = 0; i < roads.size(); i++) {
int x = roads[i][0];
int y = roads[i][1];
matrix[x][y] = 1;
matrix[y][x] = 1;
count[x]++;
count[y]++;
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
res = max(res, count[i] + count[j] - matrix[i][j]);
}
}
return res;
}
};
思路:转换成矩阵,有路径的对应为1,找出最大的和次大的,并删掉可能存在的重复计算过的。
官方示例代码:
class Solution { public: int maximalNetworkRank(int n, vector
自己代码还挺多优化的。最后一个i循环的i