题目
给你一个 n 行 m 列的矩阵,最开始的时候,每个单元格中的值都是 0。
另有一个索引数组 indices,indices[i] = [ri, ci] 中的 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。
你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值加 1。
请你在执行完所有 indices 指定的增量操作后,返回矩阵中 「奇数值单元格」 的数目。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cells-with-odd-values-in-a-matrix
示例
输入:n = 2, m = 3, indices = [[0,1],[1,1]]
输出:6
解释:最开始的矩阵是 [[0,0,0],[0,0,0]]。
第一次增量操作后得到 [[1,2,1],[0,1,0]]。
最后的矩阵是 [[1,3,1],[1,3,1]],里面有 6 个奇数。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cells-with-odd-values-in-a-matrix
思路
根据n,m创建二维数组,遍历indices数组来对创建的二维数组赋值,最后再遍历最终得到的数组来获取奇数的个数
实现
var oddCells = function(n, m, indices) {
let arr = []
let oddCount = 0
for (let i = 0; i < n; i++) {
let curArr = new Array(m).fill(0)
arr.push(curArr)
}
for (let j = 0; j < indices.length; j++) {
arr[indices[j][0]] = arr[indices[j][0]].map(item => item + 1)
for (let k = 0; k < arr.length; k++) {
arr[k][indices[j][1]] += 1
}
}
arr.forEach(item => {
oddCount += item.filter(t => {
return t % 2
}).length
})
return oddCount
};