【LetMeFly】1267.統(tǒng)計(jì)參與通信的服務(wù)器
力扣題目鏈接:https://leetcode.cn/problems/count-servers-that-communicate/
這里有一幅服務(wù)器分布圖,服務(wù)器的位置標(biāo)識(shí)在?m * n
?的整數(shù)矩陣網(wǎng)格?grid
?中,1 表示單元格上有服務(wù)器,0 表示沒有。
如果兩臺(tái)服務(wù)器位于同一行或者同一列,我們就認(rèn)為它們之間可以進(jìn)行通信。
請(qǐng)你統(tǒng)計(jì)并返回能夠與至少一臺(tái)其他服務(wù)器進(jìn)行通信的服務(wù)器的數(shù)量。
?
示例 1:
輸入:grid = [[1,0],[0,1]] 輸出:0 解釋:沒有一臺(tái)服務(wù)器能與其他服務(wù)器進(jìn)行通信。
示例 2:
輸入:grid = [[1,0],[1,1]] 輸出:3 解釋:所有這些服務(wù)器都至少可以與一臺(tái)別的服務(wù)器進(jìn)行通信。
示例 3:
輸入:grid = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1]] 輸出:4 解釋:第一行的兩臺(tái)服務(wù)器互相通信,第三列的兩臺(tái)服務(wù)器互相通信,但右下角的服務(wù)器無法與其他服務(wù)器通信。
?
提示:
m == grid.length
n == grid[i].length
1 <= m <= 250
1 <= n <= 250
grid[i][j] == 0 or 1
方法一:計(jì)數(shù)
假設(shè) g i r d gird gird的 s i z e size size為 n × m n\times m n×m,開辟兩個(gè)數(shù)組 r o w [ n ] row[n] row[n]和 c o l [ m ] col[m] col[m],分別記錄某行服務(wù)器個(gè)數(shù) 和 某列的服務(wù)器個(gè)數(shù)。
遍歷一遍地圖矩陣 g r i d grid grid,若此處有服務(wù)器(server) 且 此行或此列不只一臺(tái)服務(wù)器,則 a n s + + ans++ ans++文章來源:http://www.zghlxwxcb.cn/news/detail-675627.html
- 時(shí)間復(fù)雜度 O ( n × m ) O(n\times m) O(n×m)
- 空間復(fù)雜度 O ( n + m ) O(n + m) O(n+m)
AC代碼
C++
class Solution {
public:
int countServers(vector<vector<int>>& grid) {
int n = grid.size(), m = grid[0].size();
vector<int> row(n), col(m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
row[i] += grid[i][j], col[j] += grid[i][j];
}
}
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
ans += grid[i][j] * (row[i] > 1 || col[j] > 1);
}
}
return ans;
}
};
Python
# from typing import List
class Solution:
def countServers(self, grid: List[List[int]]) -> int:
n, m = len(grid), len(grid[0])
col, row = [0] * n, [0] * m
for i in range(n):
for j in range(m):
col[i] += grid[i][j]
row[j] += grid[i][j]
ans = 0
for i in range(n):
for j in range(m):
ans += grid[i][j] * (col[i] > 1 or row[j] > 1)
return ans
同步發(fā)文于CSDN,原創(chuàng)不易,轉(zhuǎn)載經(jīng)作者同意后請(qǐng)附上原文鏈接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/132466649文章來源地址http://www.zghlxwxcb.cn/news/detail-675627.html
到了這里,關(guān)于LeetCode 1267. 統(tǒng)計(jì)參與通信的服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!