# Solving Leetcode Interviews in Seconds with AI: Partition Array Into Three Parts With Equal Sum


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1013" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), 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 an array of integers arr, return true if we can partition the array into three non-empty parts with equal sums. Formally, we can partition the array if we can find indexes i + 1 < j with (arr[0] + arr[1] + ... + arr[i] == arr[i + 1] + arr[i + 2] + ... + arr[j - 1] == arr[j] + arr[j + 1] + ... + arr[arr.length - 1])   Example 1:  Input: arr = [0,2,1,-6,6,-7,9,1,2,0,1] Output: true Explanation: 0 + 2 + 1 = -6 + 6 - 7 + 9 + 1 = 2 + 0 + 1  Example 2:  Input: arr = [0,2,1,-6,6,7,9,-1,2,0,1] Output: false  Example 3:  Input: arr = [3,3,6,5,-2,2,5,1,-9,4] Output: true Explanation: 3 + 3 = 6 = 5 - 2 + 2 + 5 + 1 - 9 + 4    Constraints:  3 <= arr.length <= 5 * 104 -104 <= arr[i] <= 104  

	# Explanation
	Here's a breakdown of the solution:

*   **Calculate the total sum:** First, calculate the sum of all elements in the array. If the total sum is not divisible by 3, it's impossible to partition the array into three equal parts, so return `False`.
*   **Iterate and find partitions:** Iterate through the array, keeping track of the current sum. Whenever the current sum equals `total_sum / 3`, increment a counter representing the number of partitions found.
*   **Check for three partitions:** Return `True` if we find at least three partitions (meaning we've found two split points that create three equal-sum subarrays).

*   **Runtime Complexity:** O(n), where n is the length of the array.
*   **Storage Complexity:** O(1).

	
	# Code
	```python
	def canThreePartsEqualSum(arr):
    total_sum = sum(arr)
    if total_sum % 3 != 0:
        return False

    target_sum = total_sum / 3
    current_sum = 0
    partition_count = 0

    for i in range(len(arr)):
        current_sum += arr[i]
        if current_sum == target_sum:
            partition_count += 1
            current_sum = 0

    return partition_count >= 3
	```
			
