Use of sum from std::Iter::Iterator
authorGreg Burri <greg.burri@gmail.com>
Sat, 4 Dec 2021 16:42:34 +0000 (17:42 +0100)
committerGreg Burri <greg.burri@gmail.com>
Sat, 4 Dec 2021 16:42:34 +0000 (17:42 +0100)
src/day01.rs

index d4f1889..d2b4a8f 100644 (file)
@@ -1,16 +1,9 @@
+use std::iter::Iterator;
+
 pub fn count_number_of_decreased_values(report: &[i32], window_size: usize) -> i32 {
     let mut n = 0;
-
-    let sum = |i: usize| -> i32 {
-        let mut s = 0;
-        for j in i..i+window_size {
-            s += report[j];
-        }
-        s
-    };
-
     for i in 0..report.len() - window_size {
-        if sum(i+1) > sum(i) {
+        if report[i + 1..i + window_size + 1].iter().sum::<i32>() > report[i..i + window_size].iter().sum::<i32>() {
             n += 1;
         }
     }