这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。
如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。
请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。
from typing import *
class Solution:
def countServers(self, grid: List[List[int]]) -> int:
r = len(grid)
c = len(grid[0])
count = 0
r_count, c_count = [0] * r, [0] * c
for i in range(r):
for j in range(c):
if grid[i][j] == 1:
r_count[i] += 1
c_count[j] += 1
for i in range(r):
for j in range(c):
if grid[i][j] == 1 and (r_count[i] > 1 or c_count[j] > 1):
count += 1
return count