Date
Aug 24, 2023
need_review
need_review
type
undo
undo
难度
中等
这里有一幅服务器分布图,服务器的位置标识在
m * n
的整数矩阵网格 grid
中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。
请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。
示例 1:

示例 2:

示例 3:

提示:
m == grid.length
n == grid[i].length
1 <= m <= 250
1 <= n <= 250
grid[i][j] == 0 or 1
解法1
横着扫描一下, 有多个pc的时候就记录到字典
竖着扫描一下, 有多个pc的时候就记录到字典
时间复杂度为, 空间复杂度为

解法2
解法1改进
- 建立两个哈希表, 一个记录每一行中pc的数量一个记录每一列中pc的数量
- 遍历一次矩阵, 记录两个哈希表
- 再遍历一次矩阵, 如果当前位置有pc, 并且哈希表行或列记录的pc数大于1, 则这个pc有通信对象.
时间复杂度, 空间复杂度
- 使用Counter()简化一下哈希表的写法
