#73
Medium Algorithms Set matrix zeroes
Array Hash Table Matrix
62.5% acceptance
Jan 12, 2026
16987
859
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.
Solution
Rust
Time O(n²)
Space O(1)
impl Solution {
pub fn set_zeroes(matrix: &mut Vec<Vec<i32>>) {
let m = matrix.len();
let n = matrix[0].len();
let mut first_row_zero = false;
let mut first_col_zero = false;
// Check if first row has zero
for j in 0..n {
if matrix[0][j] == 0 {
first_row_zero = true;
break;
}
}
// Check if first column has zero
for i in 0..m {
if matrix[i][0] == 0 {
first_col_zero = true;
break;
}
}
// Use first row and column as markers
for i in 1..m {
for j in 1..n {
if matrix[i][j] == 0 {
matrix[i][0] = 0;
matrix[0][j] = 0;
}
}
}
// Set zeros based on markers
for i in 1..m {
for j in 1..n {
if matrix[i][0] == 0 || matrix[0][j] == 0 {
matrix[i][j] = 0;
}
}
}
// Set first row
if first_row_zero {
for j in 0..n {
matrix[0][j] = 0;
}
}
// Set first column
if first_col_zero {
for i in 0..m {
matrix[i][0] = 0;
}
}
}
}