Solving Leetcode Interviews in Seconds with AI: Find the Middle Index in Array
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