LeetCode - Blind 75 - Set Matrix Zeroes
The problem Given an m x n integer matrix matrix, if an element is 0, set its entire row and column to 0s. You must do it in place. Examples Input: matrix = [[1,1,1],[1,0,1],[1,1,1]] Output: [[1,0,1],[0,0,0],[1,0,1]] 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 -2³¹ <= matrix[i][j] <= 2³¹ - 1 Follow up: A straightforward solution using O(m*n) 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? Brute Force Solution func setZeroes(_ matrix: inout [[Int]]) { let rows = matrix.count let cols = matrix[0].count var mark: [[Int]] = [] for r in 0 ..< rows { var row: [Int] = [] for c in 0 ..< cols { row.append(matrix[r][c]) } mark.append(row) } for r in 0 ..< rows { for c in 0 ..< cols { if matrix[r][c] == 0 { for col in 0 ..< cols { mark[r][col] = 0 } for row in 0 ..< rows { mark[row][c] = 0 } } } } for r in 0 ..< rows { for c in 0 ..< cols { matrix[r][c] = mark[r][c] } } } Explanation ...