LeetCode in Kotlin

2482. Difference Between Ones and Zeros in Row and Column

Medium

You are given a 0-indexed m x n binary matrix grid.

A 0-indexed m x n difference matrix diff is created with the following procedure:

Return the difference matrix diff.

Example 1:

Input: grid = [[0,1,1],[1,0,1],[0,0,1]]

Output: [[0,0,4],[0,0,4],[-2,-2,2]]

Explanation:

Example 2:

Input: grid = [[1,1,1],[1,1,1]]

Output: [[5,5,5],[5,5,5]]

Explanation:

Constraints:

Solution

class Solution {
    fun onesMinusZeros(grid: Array<IntArray>): Array<IntArray> {
        val rowOne = IntArray(grid.size)
        val colOne = IntArray(grid[0].size)
        val m = grid.size
        val n = grid[0].size
        for (i in 0 until m) {
            var c = 0
            for (j in 0 until n) {
                if (grid[i][j] == 1) {
                    c++
                }
            }
            rowOne[i] = c
        }
        for (i in 0 until n) {
            var c = 0
            for (ints in grid) {
                if (ints[i] == 1) {
                    c++
                }
            }
            colOne[i] = c
        }
        for (i in 0 until m) {
            for (j in 0 until n) {
                grid[i][j] = rowOne[i] + colOne[j] - (m - rowOne[i]) - (n - colOne[j])
            }
        }
        return grid
    }
}