Сложность: easy
Имеется матрица m x n, которая инициализирована всеми 0. Имеется двумерный массив indices, в котором каждый indices[i] = [ri, ci] представляет собой местоположение с индексом 0 для выполнения некоторых операций инкремента над матрицей. Для каждого местоположения indices[i] выполните оба следующих действия: увеличьте все ячейки в строке ri. Увеличьте все ячейки в столбце ci. Учитывая m, n и indices, верните количество нечетных ячеек в матрице после применения инкремента ко всем местоположениям в indices.
Пример:
Input: nums = [12,5,7,23]
Output: true
👨💻 Алгоритм:
1⃣Инициализируйте два массива: один для подсчета количества инкрементов каждой строки, другой - каждого столбца.
2⃣Для каждого элемента в indices увеличьте счетчики соответствующих строк и столбцов.
3⃣Подсчитайте количество нечетных ячеек, используя информацию о количестве инкрементов каждой строки и столбца.
😎 Решение:
var oddCells = function(m, n, indices) {
let row_count = new Array(m).fill(0);
let col_count = new Array(n).fill(0);
for (let [r, c] of indices) {
row_count[r]++;
col_count[c]++;
}
let odd_count = 0;
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
if ((row_count[i] + col_count[j]) % 2 === 1) {
odd_count++;
}
}
}
return odd_count;
};Ставь 👍 и забирай 📚 Базу знаний