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 + } +}