diff --git a/maximum-points-you-can-obtain-from-cards/sol.rs b/maximum-points-you-can-obtain-from-cards/sol.rs new file mode 100644 index 0000000..c73dc2b --- /dev/null +++ b/maximum-points-you-can-obtain-from-cards/sol.rs @@ -0,0 +1,20 @@ +impl Solution { + pub fn max_score(card_points: Vec, k: i32) -> i32 { + let mut sum = card_points.iter() + .take(k as usize) + .sum::(); + let mut max = sum; + for (sub, add) in card_points.iter() + .take(k as usize) + .rev() + .zip( + card_points.iter() + .rev() + .take(k as usize) + ) { + sum += add - sub; + max = max.max(sum); + } + max + } +} \ No newline at end of file