From af0dd6af82d9004b43873d27c466d964f46eb204 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Tue, 12 Jul 2022 12:36:28 +0000 Subject: [PATCH] problems: add find pivot index --- problems/find-pivot-index.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 problems/find-pivot-index.rs diff --git a/problems/find-pivot-index.rs b/problems/find-pivot-index.rs new file mode 100644 index 0000000..173fbde --- /dev/null +++ b/problems/find-pivot-index.rs @@ -0,0 +1,20 @@ +use std::convert::TryInto; + +impl Solution { + pub fn pivot_index(nums: Vec) -> i32 { + let mut from_left: i32 = 0; + let mut from_right: i32 = nums.iter().sum(); + + for (i, e) in nums.iter().enumerate() { + from_right -= e; + + if from_left == from_right { + return i.try_into().unwrap(); + } + + from_left += e; + } + + -1 + } +}