From 7c60dee83b436e8e8a667bf9f191beced8de4fc3 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Mon, 10 Mar 2025 00:36:13 -0600 Subject: chore: move cpp and rust code to directory --- other/set_matrix_0.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 other/set_matrix_0.rs (limited to 'other/set_matrix_0.rs') diff --git a/other/set_matrix_0.rs b/other/set_matrix_0.rs new file mode 100644 index 0000000..78c434a --- /dev/null +++ b/other/set_matrix_0.rs @@ -0,0 +1,44 @@ +// 73. Set Matrix Zeroes +// given an 'm x n' integer matrix 'matrix', if an element is 0, +// set its entire row and column to 0's. must be done in place +// (https://en.wikipedia.org/wiki/In-place_algorithm) + +impl Solution { + pub fn set_zeroes(matrix: &mut Vec>) { + let n_rows = matrix.len(); + let n_cols = matrix[0].len(); + let mut first_row = false; + let mut first_col = false; + for row in 0..n_rows { + for col in 0..n_cols { + if matrix[row][col] == 0 { + if row == 0 { + first_row = true; + } + if col == 0 { + first_col = true; + } + matrix[0][col] = 0; + matrix[row][0] = 0; + } + } + } + for row in 1..n_rows { + for col in 1..n_cols { + if matrix[row][0] == 0 || matrix[0][col] == 0 { + matrix[row][col] = 0 + } + } + } + if first_row { + for col in 0..n_cols { + matrix[0][col] = 0; + } + } + if first_col { + for row in 0..n_rows { + matrix[row][0] = 0; + } + } + } +} -- cgit v1.2.3