Open yankewei opened 1 year ago
比较简单的模拟题,两次遍历,第一次把每一行和每一列总共有多少个 1 算出来就可以,第二次计算结果,这里要注意不能把自己算进去
class Solution {
/**
* @param Integer[][] $grid
* @return Integer
*/
function countServers($grid) {
$row = [];
$column = [];
foreach ($grid as $row_index => $rows) {
$row[$row_index] = 0;
foreach ($rows as $column_index => $item) {
if (!array_key_exists($column_index, $column)) {
$column[$column_index] = 0;
}
if ($item === 1) {
$row[$row_index]++;
$column[$column_index]++;
}
}
}
$ret = 0;
foreach ($grid as $row_index => $rows) {
foreach ($rows as $column_index => $value) {
if ($value === 1 && ($row[$row_index] > 1 || $column[$column_index] > 1)) {
$ret++;
}
}
}
return $ret;
}
}
这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。
如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。
请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。
示例 1:
示例 2:
示例 3:
提示: