1. 程式人生 > 實用技巧 >1267. 統計參與通訊的伺服器

1267. 統計參與通訊的伺服器

這裡有一幅伺服器分佈圖,伺服器的位置標識在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
解釋:第一行的兩臺伺服器互相通訊,第三列的兩臺伺服器互相通訊,但右下角的伺服器無法與其他伺服器通訊。

提示:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m <= 250
  • 1 <= n <= 250
  • grid[i][j] == 0 or 1

驚了,圖論題能這麼氵

class Solution:
    def countServers(self, grid: List[List[int]]) -> int:
        def f(a):
            res=''
            for i in a:
                res+=str(i)
            return
res.count('1')>1 z=zip(*grid) row=[f(a) for a in grid] col=[f(a) for a in z] res=0 for i in range(len(grid)): for j in range(len(grid[0])): if (row[i] or col[j]) and grid[i][j]==1: res+=1 return res