LC 73. Set Matrix Zeroes

Alen Alex · February 3, 2024

LeetCode Link: 73. Set Matrix Zeroes
Language: C#

Problem Statement

Given an m x n integer matrix matrix, if an element is 0, set its entire row and column to 0’s.

You must do it in place.

Examples

Example 1:

img1
Input: matrix = [[1,1,1],[1,0,1],[1,1,1]]
Output: [[1,0,1],[0,0,0],[1,0,1]]

Example 2:

img2 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

Solution

public class Solution 
{
    public void SetZeroes(int[][] matrix) 
    {
        var rows = new HashSet<int>();
        var cols = new HashSet<int>();

        for (int i=0; i<matrix.Length; i++)
        {
            for (int j=0; j<matrix[i].Length; j++)
            {
                if (matrix[i][j] == 0)
                {
                    rows.Add(i);
                    cols.Add(j);
                }
            }
        }

        foreach (var e in rows)
        {
            for (int j=0; j<matrix[e].Length; j++)
            {
                matrix[e][j] = 0;
            }
        }

        foreach (var e in cols)
        {
            for (int j=0; j<matrix.Length; j++)
            {
                matrix[j][e] = 0;
            }
        }
    }
}

Complexity

Time Complexity: O(M*N)
Space Complexity: O(M+N)

Twitter, Facebook