Set Matrix Zeroes

Run Settings
LanguageJava
Language Version
Run Command
import java.util.Arrays; class Main { /* Given a matrix matrix containing distinct integers, modify it in-place such that all rows and columns that contain zeros are set to zeros. matrix = [ [1, 1, 1], [1, 0, 1], [1, 1, 1] ] */ // iterate through the matrix to record the rows and columns that contains 0 // iterate through the recorded rows and columns and set all the elements to 0 // modify the matrix in place // time: o(m * n) // space: o(m + n) public static void setMatrix(int[][] matrix){ int r = matrix.length; int c = matrix[0].length; // boolean arrays to record which rows and columns contains 0 boolean[] rHasZeros = new boolean[r]; boolean[] cHasZeros = new boolean[c]; // iterate to record r and c for(int i = 0; i < r; i++){ for (int j = 0; j < c; j++){ if(matrix[i][j] == 0){ rHasZeros[i] = true; cHasZeros[j] = true; } } } // iterate recorded matrix to set elements -> 0 // r for(int i = 0; i < r; i++){ if(rHasZeros[i]){ for(int j = 0; j < c; j++){ matrix[i][j] = 0; } } } //c for(int j = 0; j < c; j++){ if(cHasZeros[j]){ for(int i = 0; i < r; i++){ matrix[i][j] = 0; } } } } public static void main(String[] args) { int[][] input = { {1, 1, 1}, {1, 0, 1}, {1, 1, 1} }; setMatrix(input); for(int[] r: input){ System.out.println(Arrays.toString(r)); } } }
Editor Settings
Theme
Key bindings
Full width
Lines