今日题目
https://leetcode.com/problems/count-servers-that-communicate/
思路
按题目要求模拟即可。
方法
先统计每行和每列中服务器的数量,再判断每台服务器是否有与其同行或同列的其他服务器。
复杂度
-
时间复杂度:$O(NM)$,N、M 分别为网格的行数和列数。
-
空间复杂度:$O(NM)$
代码
class Solution:
def countServers(self, grid: List[List[int]]) -> int:
cntR = [0] * len(grid)
cntC = [0] * len(grid[0])
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j]:
cntR[i] += 1
cntC[j] += 1
ans = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] and (cntR[i] > 1 or cntC[j] > 1):
ans += 1
return ans