Skip to main content
Back to problems
#1991
Easy Algorithms

Find the middle index in array

Array Prefix Sum
69.2% acceptance
Feb 25, 2026
1554
80
Given a 0-indexed integer array nums, find the leftmost middleIndex (i.e., the smallest amongst all the possible ones). A middleIndex is an index where nums[0] + nums[1] + ... + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + ... + nums[nums.length-1]. If middleIndex == 0, the left side sum is considered to be 0. Similarly, if middleIndex == nums.length - 1, the right side sum is considered to be 0. Return the leftmost middleIndex that satisfies the condition, or -1 if there is no such index.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn find_middle_index(nums: Vec<i32>) -> i32 {
    let total: i32 = nums.iter().sum();
    let mut left_sum = 0;
    for i in 0..nums.len() {
      if left_sum == total - left_sum - nums[i] {
        return i as i32;
      }
      left_sum += nums[i];
    }
    -1
  }
}