Talentd
FleetCode

689. Maximum Sum of 3 Non-Overlapping Subarrays

Hard59.8% acceptance6 companies

Given an integer array nums and an integer k, find three non-overlapping subarrays of length k with maximum sum and return them.

Return the result as a list of indices representing the starting position of each interval (0-indexed). If there are multiple answers, return the lexicographically smallest one.

Example 1:

Input: nums = [1,2,1,2,6,7,5,1], k = 2
Output: [0,3,5]
Explanation: Subarrays [1, 2], [2, 6], [7, 5] correspond to the starting indices [0, 3, 5].
We could have also taken [2, 1], but an answer of [1, 3, 5] would be lexicographically smaller.

Example 2:

Input: nums = [1,2,1,2,1,2,1,2,1], k = 2
Output: [0,2,4]

Constraints:

  • 1 <= nums.length <= 2 * 104
  • 1 <= nums[i] < 216
  • 1 <= k <= floor(nums.length / 3)
21:17
Still stuck?Read 4 approaches, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def maxSumOfThreeSubarrays(self, nums: List[int], k: int) -> List[int]:
3
Starter codePython 3Spaces: 4
Examples
Input
[1,2,1,2,6,7,5,1]
2
Input
[1,2,1,2,1,2,1,2,1]
2
Your code is saved on this device.Solution