2023-08-24每日一題
一、題目編號(hào)
1267. 統(tǒng)計(jì)參與通信的服務(wù)器
二、題目鏈接
點(diǎn)擊跳轉(zhuǎn)到題目位置
三、題目描述
這里有一幅服務(wù)器分布圖,服務(wù)器的位置標(biāo)識(shí)在 m * n 的整數(shù)矩陣網(wǎng)格 grid 中,1 表示單元格上有服務(wù)器,0 表示沒(méi)有。
如果兩臺(tái)服務(wù)器位于同一行或者同一列,我們就認(rèn)為它們之間可以進(jìn)行通信。
請(qǐng)你統(tǒng)計(jì)并返回能夠與至少一臺(tái)其他服務(wù)器進(jìn)行通信的服務(wù)器的數(shù)量。
示例 1:
示例 2:
示例 3:
提示:
- m == grid.length
- n == grid[i].length
- 1 <= m <= 250
- 1 <= n <= 250
- grid[i][j] == 0 or 1
四、解題代碼
class Solution {
unordered_map<int, int> row;
unordered_map<int, int> line;
public:
int countServers(vector<vector<int>>& grid) {
int m = grid.size();
int n = grid[0].size();
for(int i = 0; i < m; ++i){
for(int j = 0; j < n; ++j){
if(grid[i][j]){
row[i]++;
line[j]++;
}
}
}
int res = 0;
for(int i = 0; i < m; ++i){
for(int j = 0; j < n; ++j){
if(grid[i][j] && (row[i] >= 2 || line[j] >= 2)){
++res;
}
}
}
return res;
}
};
五、解題思路
(1) 第一次遍歷矩陣,用兩個(gè)哈希表,row代表行,line表示列,遍歷矩陣,如果當(dāng)前位置有服務(wù)器,則該行服務(wù)器數(shù)量+1,該列服務(wù)器數(shù)量+1。
(2) 第二次遍歷矩陣,如果該位置有服務(wù)器,則如果行或者列服務(wù)器至少有兩臺(tái),則代表該位置的服務(wù)器能與其他位置至少一臺(tái)服務(wù)器通信,那么結(jié)果res加一。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-684048.html
(3) 最后返回結(jié)果res即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-684048.html
到了這里,關(guān)于2023-08-24 LeetCode每日一題(統(tǒng)計(jì)參與通信的服務(wù)器)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!