Flood Fill LeetCode solution in Rust
1impl Solution {2pub fn flood_fill(mut image: Vec<Vec<i32>>, sr: i32, sc: i32, new_color: i32) -> Vec<Vec<i32>> {3let old_color = image[sr as usize][sc as usize];4if old_color == new_color {5return image;6}7let mut stack = vec![(sr as usize, sc as usize)];8while let Some((i, j)) = stack.pop() {9if image[i][j] != old_color {10continue;11}12image[i][j] = new_color;13if i > 0 {14stack.push((i - 1, j));15}16if i < image.len() - 1 {17stack.push((i + 1, j))18}19if j > 0 {20stack.push((i, j - 1));21}22if j < image[0].len() - 1 {23stack.push((i, j + 1));24}25}26image27}28}