DDSA Solutions

2270. Number of Ways to Split Array

Time: O(n)
Space: O(1)
Advertisement

Intuition

Count splits where left sum equals right sum. Prefix sum from left, suffix from right.

Algorithm

  1. 1Total sum. leftSum = 0. For i from 0 to n-2: leftSum += nums[i]. rightSum = total - leftSum. If equal: count++.

Common Pitfalls

  • Split at index i means left=[0..i], right=[i+1..n-1]. Do not include last index.
2270.cs
C#
// Approach: Prefix sum scan; count splits where left prefix sum ≥ right suffix sum.
// Time: O(n) Space: O(1)

public class Solution
{
    public int WaysToSplitArray(int[] nums)
    {
        int ans = 0;
        long prefix = 0, suffix = 0;
        foreach (int val in nums)
            suffix += val;

        for (int i = 0; i < nums.Length - 1; ++i)
        {
            prefix += nums[i];
            suffix -= nums[i];
            if (prefix >= suffix)
                ++ans;
        }

        return ans;
    }
}
Advertisement
Was this solution helpful?