Difference Between Ones and Zeros in Row and Column
Manmohan Mishra
Founder @CoggniCraft Solutions | Artificial Intelligent|Python|4 ?Rating on Leetcode| Data Science| Data Analysis||Author-Spiritual|Science-Fiction & Self Help|
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:
Input: grid = [[0,1,1],[1,0,1],[0,0,1]] Output: [[0,0,4],[0,0,4],[-2,-2,2]] Explanation: - diff[0][0] = onesRow0 + onesCol0 - zerosRow0 - zerosCol0 = 2 + 1 - 1 - 2 = 0 - diff[0][1] = onesRow0 + onesCol1 - zerosRow0 - zerosCol1 = 2 + 1 - 1 - 2 = 0 - diff[0][2] = onesRow0 + onesCol2 - zerosRow0 - zerosCol2 = 2 + 3 - 1 - 0 = 4 - diff[1][0] = onesRow1 + onesCol0 - zerosRow1 - zerosCol0 = 2 + 1 - 1 - 2 = 0 - diff[1][1] = onesRow1 + onesCol1 - zerosRow1 - zerosCol1 = 2 + 1 - 1 - 2 = 0 - diff[1][2] = onesRow1 + onesCol2 - zerosRow1 - zerosCol2 = 2 + 3 - 1 - 0 = 4 - diff[2][0] = onesRow2 + onesCol0 - zerosRow2 - zerosCol0 = 1 + 1 - 2 - 2 = -2 - diff[2][1] = onesRow2 + onesCol1 - zerosRow2 - zerosCol1 = 1 + 1 - 2 - 2 = -2 - diff[2][2] = onesRow2 + onesCol2 - zerosRow2 - zerosCol2 = 1 + 3 - 2 - 0 = 2
Source Code:-
class Solution {
public int[][] onesMinusZeros(int[][] grid) {
int[] rowOnes = new int[grid.length];
int[] colOnes = new int[grid[0].length];
for(int i = 0; i < grid.length; i++) {
for(int j = 0; j < grid[0].length; j++) {
rowOnes[i] += grid[i][j];
colOnes[j] += grid[i][j];
}
}
for(int i = 0; i < grid.length; i++) {
for(int j = 0; j < grid[0].length; j++) {
grid[i][j] = 2 * (rowOnes[i] + colOnes[j]) - grid.length - grid[0].length;
}
}
return grid;
}
}