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:
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
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)