2270. Number of Ways to Split Array
MediumView on LeetCode
Time: O(n)
Space: O(1)
Advertisement
Intuition
Count splits where left sum equals right sum. Prefix sum from left, suffix from right.
Algorithm
- 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?