Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Find the Middle Index in Array

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "1991" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

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. Example 1: Input: nums = [2,3,-1,8,4] Output: 3 Explanation: The sum of the numbers before index 3 is: 2 + 3 + -1 = 4 The sum of the numbers after index 3 is: 4 = 4 Example 2: Input: nums = [1,-1,4] Output: 2 Explanation: The sum of the numbers before index 2 is: 1 + -1 = 0 The sum of the numbers after index 2 is: 0 Example 3: Input: nums = [2,5] Output: -1 Explanation: There is no valid middleIndex. Constraints: 1 <= nums.length <= 100 -1000 <= nums[i] <= 1000 Note: This question is the same as 724: https://leetcode.com/problems/find-pivot-index/

Explanation

  • Calculate the total sum: First, compute the total sum of all elements in the array.
    • Iterate and compare: Iterate through the array, maintaining a running left sum. For each index, calculate the right sum using the total sum and the left sum. Check if the left sum equals the right sum.
    • Return the index or -1: If a middle index is found, return it immediately. Otherwise, return -1 after the loop completes.
  • Runtime Complexity: O(n), where n is the length of the input array. Storage Complexity: O(1).

Code

    def findMiddleIndex(nums):
    """
    Finds the leftmost middleIndex in an array.

    Args:
        nums: A list of integers.

    Returns:
        The leftmost middleIndex, or -1 if no such index exists.
    """
    total_sum = sum(nums)
    left_sum = 0
    for i in range(len(nums)):
        right_sum = total_sum - left_sum - nums[i]
        if left_sum == right_sum:
            return i
        left_sum += nums[i]
    return -1

More from this blog

C

Chatmagic blog

2894 posts