Leetcode 73. Set Matrix Zeroes
2 min readAug 13, 2021
[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.length
n == matrix[0].length
1 <= m, n <= 200
-231 <= matrix[i][j] <= 231 - 1
Follow up:
- A straightforward 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?
[Java]
- seperate into different tasks and handle them one by one.
- create two boolean first row, first col to see if we need to change them into 0 at the end.
- if we find matrix[i][j] == 0, we change it first row, col location into 0, if the matrix[i][0] || matrix[0][j] are already zero, we change the boolean into true
- use first row/ col as an index, if the index == 0, change matrix[i][j] into 0
- if boolean is true, the the whole row or column into 0