aboutsummaryrefslogtreecommitdiff
path: root/rust/saddle-points/src/lib.rs
diff options
context:
space:
mode:
authorFederico Igne <git@federicoigne.com>2020-12-26 17:48:38 +0000
committerFederico Igne <git@federicoigne.com>2021-11-03 18:55:08 +0000
commit02481656966b0a8dfc95cf3c22bcc049660ff7d4 (patch)
tree8e39798fcaf27931d91c2088423fd4e97adcfc2d /rust/saddle-points/src/lib.rs
parent4e2052c4d792540c2f742b2c2a081b11117ed41d (diff)
downloadexercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.tar.gz
exercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.zip
Move Rust exercises in a subdirectory
Diffstat (limited to 'rust/saddle-points/src/lib.rs')
-rw-r--r--rust/saddle-points/src/lib.rs16
1 files changed, 16 insertions, 0 deletions
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 @@
1fn is_min(mat: &[Vec<u64>], col: usize, row: usize) -> bool {
2 (0..mat.len()).all(|r| mat[r][col] >= mat[row][col])
3}
4
5pub fn find_saddle_points(input: &[Vec<u64>]) -> Vec<(usize, usize)> {
6 let mut res = vec![];
7 for (row,relem) in input.iter().enumerate() {
8 let m = relem.iter().max();
9 for (col,celem) in relem.iter().enumerate() {
10 if (m == Some(celem)) && is_min(input,col,row) {
11 res.push((row,col));
12 }
13 }
14 }
15 res
16}