Split array - largest sum

Asked atGoogleZeta
1Give yourself 5 minutes
2Answer out loud, not in your head
3Then compare with the answer below

The problem

Given an integer array a of size n and an integer k. Split the array a into k non-empty subarrays such that the largest sum of any subarray is minimized. Return the minimized largest sum of the split.

Input: a = [1, 2, 3, 4, 5], k = 3 Output:6 Explanation: There are many ways to split the array a[] into k consecutive subarrays. The best way to do this is to split the array a[] into [1, 2, 3], [4], and [5], where the largest sum among the three subarrays is only 6.

Input: a = [3,5,1], k = 3 Output: 5 Explanation: There is only one way to split the array a[] into 3 subarrays, i.e., [3], [5], and [1]. The largest sum among these subarrays is 5.

Input: a = [1, 2, 3, 4, 5], k = 2

  • 1 ≤ n ≤ 104
  • 1 ≤ k ≤ n
  • 1 ≤ a[i] ≤ 104

cpp

class Solution {
public:
    int largestSubarraySumMinimized(vector<int> &a, int k) {
        
    }
};

java

class Solution {
    public int largestSubarraySumMinimized(int[] a, int k) {
     
    }
}

python

class Solution:
    def largestSubarraySumMinimized(self, a, k):

javascript

class Solution {
    largestSubarraySumMinimized(a, k) {
        
    }
}

csharp

public class Solution
{
    public int LargestSubarraySumMinimized(int[] a, int k)
    {
     
    }
}

go

func largestSubarraySumMinimized(a []int, k int) int {
    //your code goes here
}
Stuck? Show a way to structure it+
  1. 01Search between the maximum item and total sum.
  2. 02Greedily count partitions needed for a candidate limit.
  3. 03Start a new partition when adding an item exceeds the limit.
  4. 04Use partition count as the feasibility predicate.
  5. 05Return the first feasible limit.

Reference answer

Then expect these follow-ups

  • How would you reconstruct the partitions?

    Tests: greedy reconstruction

  • Why do negative values break this approach?

    Tests: assumptions

Free to read · better with Enzo

Practice this out loud with Enzo

Enzo runs it as a mock interview, pushes back with follow-ups, and grades you on the rubric.

Next question