Сложность: 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⃣Подсчитайте количество нечетных ячеек, используя информацию о количестве инкрементов каждой строки и столбца.
😎 Решение:
class Solution {
func oddCells(_ m: Int, _ n: Int, _ indices: [[Int]]) -> Int {
var row_count = [Int](repeating: 0, count: m)
var col_count = [Int](repeating: 0, count: n)
for index in indices {
row_count[index[0]] += 1
col_count[index[1]] += 1
}
var odd_count = 0
for i in 0..<m {
for j in 0..<n {
if (row_count[i] + col_count[j]) % 2 == 1 {
odd_count += 1
}
}
}
return odd_count
}
}Ставь 👍 и забирай 📚 Базу знаний