题目描述:
这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。
如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。
请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。
示例:
解题思路:
统计每行服务器个数,大于1直接添加到总数,若为1,查询该列是否存在另外至多一台服务器,若有,总数加一,若无,不操作。
相关代码:
class Solution {
public int countServers(int[][] grid) {
int count=0,sum=0;
for(int i=0;i<grid.length;i++) {
count=0;
for(int j=0;j<grid[i].length;j++) {
if(grid[i][j]!=0) {
count++;
}
}
if(count==1) {
for(int j=0;j<grid[i].length;j++) {
if(grid[i][j]!=0) {
for(int z=0;z<grid.length;z++) {
if(grid[z][j]==1&&z!=i) count++;
}
break;
}
}
if(count==1) count=0;
else count=1;
}
if(count>0) {
sum+=count;
}
}
return sum;
}
}