原题目:https://leetcode-cn.com/problems/count-servers-that-communicate/
思路:
记录每行每列的计算机的个数,然后依次遍历节点,如果该节点为计算机并且该行或该列的计算机个数大于1,则表示可以通信
代码L:
class Solution {
public:
int countServers(vector<vector<int>>& grid) {
int m =grid.size(),n = grid[0].size();
vector<int> flag_m(m),flag_n(n);
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(grid[i][j]){
++flag_m[i];
++flag_n[j];
}
}
}
int sum = 0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(grid[i][j] && (flag_n[j]>1 || flag_m[i]>1)){
++sum;
}
}
}
return sum;
}
};