Medium
Given an m x n integer matrix matrix, if an element is 0, set its entire row and column to 0’s, and return the matrix.
You must do it in place.
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.lengthn == matrix[0].length1 <= m, n <= 200-231 <= matrix[i][j] <= 231 - 1Follow up:
O(mn) space is probably a bad idea.O(m + n) space, but still not the best solution.To solve the “Set Matrix Zeroes” problem in Swift with the Solution class, follow these steps:
setZeroes in the Solution class that takes a 2D integer matrix matrix as input and modifies it in place to set the entire row and column to zeros if an element is zero.rowZero and colZero of size m and n respectively, where m is the number of rows in the matrix and n is the number of columns. These arrays will track whether a row or column needs to be set to zero.matrix[i][j] is zero, set rowZero[i] = true and colZero[j] = true.rowZero[i] = true or the entire column to zeros if colZero[j] = true.Here’s the implementation of the setZeroes method in Swift:
class Solution {
    func setZeroes(_ matrix: inout [[Int]]) {
        var rows = Set<Int>()
        var columns = Set<Int>()
        //traverse the matrix
        for i in 0..<matrix.count {
            for j in 0..<matrix[i].count {
                if matrix[i][j] == 0 {
                    rows.insert(i)
                    columns.insert(j)
                }
            }
        }
        //change rows
        for row in rows {
            matrix[row] = Array(repeating: 0, count: matrix[row].count)
        }
        //change columns
        for column in columns {
            for row in 0..<matrix.count {
                matrix[row][column] = 0
            }
        }
    }
}
This implementation modifies the matrix in place to set entire rows and columns to zeros, with a time complexity of O(m * n) and a space complexity of O(m + n), where m is the number of rows and n is the number of columns in the matrix.