Set Matrix Zeroes - Array - Medium - LeetCode
💻 coding

Set Matrix Zeroes - Array - Medium - LeetCode

1 min read 141 words
1 min read
ShareWhatsAppPost on X
  • 1The problem requires setting entire rows and columns to zero if any element is zero in an m x n matrix.
  • 2A straightforward solution uses O(mn) space, while an improved version uses O(m + n) space.
  • 3The challenge is to devise a constant space solution for the matrix zeroing problem.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The problem requires setting entire rows and columns to zero if any element is zero in an m x n matrix."

Set Matrix Zeroes - Array - Medium - LeetCode

Given an m x n matrix. If an element is 0, set its entire row and column to 0. Do it in-place.

Follow up:

A straight forward solution using O(mn) space is probably a bad idea. A simple improvement uses O(m + n) space, but still not the best solution. Could you devise a constant space solution?

Example 1:

Input: matrix = [[1,1,1],[1,0,1],[1,1,1]] Output: [[1,0,1],[0,0,0],[1,0,1]] Example 2:

Input: matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]] Output: [[0,0,0,0],[0,4,5,0],[0,3,1,0]]

Constraints:

m == matrix.length n == matrix[0].length 1 <= m, n <= 200 -231 <= matrix[i][j] <= 231 - 1

public class Solution {
 public void SetZeroes(int[][] matrix) {
 var setRow = new HashSet<int>();
 var setCol = new HashSet<int>();
 
 for(int i=0;i<matrix.Length;i++){
 for(int j=0;j<matrix[0].Length;j++){
 if(matrix[i][j]==0){
 setRow.Add(i);
 setCol.Add(j);
 }
 }
 }
 
 for(int i=0;i<matrix.Length;i++){
 for(int j=0;j<matrix[0].Length;j++){
 if(setRow.Contains(i) || setCol.Contains(j)){
 matrix[i][j]=0;
 }
 }
 }
 
 }
}

Time Complexity: O(n^2)

Space Complexity: O(n)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 31 October 2020 · 1 min read · 141 words

Part of AskGif Blog · coding

You might also like