题目:
这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。
如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。
请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。
示例 1:
输入:grid = [[1,0],[0,1]]
输出:0
解释:没有一台服务器能与其他服务器进行通信。
示例 2:
输入:grid = [[1,0],[1,1]]
输出:3
解释:所有这些服务器都至少可以与一台别的服务器进行通信。
示例 3:
输入:grid = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1]]
输出:4
解释:第一行的两台服务器互相通信,第三列的两台服务器互相通信,但右下角的服务器无法与其他服务器通信。
代码:
class Solution:
def countServers(self, grid: List[List[int]]) -> int:
rows,columns = len(grid), len(grid[0])
res = 0
def search(y, x):
for i in range(columns):
if grid[y][i] == 1 and i != x:
return 1
for i in range(rows):
if grid[i][x] == 1 and i != y:
return 1
return 0
for y in range(rows):
for x in range(columns):
if grid[y][x]:
res += search(y, x)
return res
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/d_l_w_d_l_w/article/details/122576529
内容来源于网络,如有侵权,请联系作者删除!