LeetCode之Cells with Odd Values in a Matrix(Kotlin)

250 阅读1分钟

问题:


方法: 使用BF暴力求解,先统计行为1的情况,再统计列为1的情况,最后统计行列相交位置为奇数的情况,输出求和数量即可。

具体实现:

class CellsWithOddValuesInAMatrix {
    fun oddCells(n: Int, m: Int, indices: Array<IntArray>): Int {
        val rowNum = IntArray(n) {
            0
        }
        val colNum = IntArray(m) {
            0
        }
        for (els in indices) {
            val r = els[0]
            val c = els[1]
            rowNum[r] += 1
            colNum[c] += 1
        }
        var ans = 0
        for (i in rowNum.indices) {
            for (j in colNum.indices) {
                if ((rowNum[i] + colNum[j]).rem(2) == 1) {
                    ans++
                }
            }
        }
        return ans
    }
}

fun main(args: Array<String>) {
    val n = 2
    val m = 3
    val indices = arrayOf(intArrayOf(0, 1), intArrayOf(1, 1))
    val cellsWithOddValuesInAMatrix = CellsWithOddValuesInAMatrix()
    println(cellsWithOddValuesInAMatrix.oddCells(n, m, indices))
}

有问题随时沟通

具体代码实现可以参考Github