73. Set Matrix Zeroes
Given an _m_ x _n_
matrix. If an element is 0 , set its entire row and column to 0. Do it in-place.
Follow up:
- A straight forward 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?
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
# @lc code=start
using LeetCode
function set_zeroes(matrix::Vector{Vector{Int}})::Vector{Vector{Int}}
is_col = false
m, n = length(matrix), length(matrix[1])
for i = 1:m
matrix[i][1] == 0 && (is_col = true)
for j = 2:n
matrix[i][j] == 0 && (matrix[i][1] = matrix[1][j] = 0)
end
end
for i = 2:m, j = 2:n
(matrix[i][1] == 0 || matrix[1][j] == 0) && (matrix[i][j] = 0)
end
# See if the first row needs to be set to zero as well
if matrix[1][1] == 0
for j = 1:n
matrix[1][j] = 0
end
end
# See if the first column needs to be set to zero as well
if is_col
for i = 1:m
matrix[i][1] = 0
end
end
return matrix
end
# @lc code=end
set_zeroes (generic function with 1 method)
This page was generated using DemoCards.jl and Literate.jl.