From 02481656966b0a8dfc95cf3c22bcc049660ff7d4 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sat, 26 Dec 2020 17:48:38 +0000 Subject: Move Rust exercises in a subdirectory --- rust/saddle-points/src/lib.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 rust/saddle-points/src/lib.rs (limited to 'rust/saddle-points/src/lib.rs') diff --git a/rust/saddle-points/src/lib.rs b/rust/saddle-points/src/lib.rs new file mode 100644 index 0000000..7123243 --- /dev/null +++ b/rust/saddle-points/src/lib.rs @@ -0,0 +1,16 @@ +fn is_min(mat: &[Vec], col: usize, row: usize) -> bool { + (0..mat.len()).all(|r| mat[r][col] >= mat[row][col]) +} + +pub fn find_saddle_points(input: &[Vec]) -> Vec<(usize, usize)> { + let mut res = vec![]; + for (row,relem) in input.iter().enumerate() { + let m = relem.iter().max(); + for (col,celem) in relem.iter().enumerate() { + if (m == Some(celem)) && is_min(input,col,row) { + res.push((row,col)); + } + } + } + res +} -- cgit v1.2.3