DDSA Solutions

2270. Number of Ways to Split Array

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

Problem Overview

Count splits where left sum equals right sum.

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;
    }
}
Was this solution helpful?

Related Problems