Sum of Variable Length Subarrays - Problem

You are given an integer array nums of size n. For each index i where 0 <= i < n, define a subarray nums[start ... i] where start = max(0, i - nums[i]).

Return the total sum of all elements from the subarray defined for each index in the array.

Input & Output

Example 1 — Basic Case
$ Input: nums = [1,2,3,2]
Output: 17
💡 Note: For i=0: start=max(0,0-1)=0, subarray=[1], sum=1. For i=1: start=max(0,1-2)=0, subarray=[1,2], sum=3. For i=2: start=max(0,2-3)=0, subarray=[1,2,3], sum=6. For i=3: start=max(0,3-2)=1, subarray=[2,3,2], sum=7. Total: 1+3+6+7=17.
Example 2 — Edge Case
$ Input: nums = [5,1,3,2]
Output: 26
💡 Note: For i=0: start=max(0,0-5)=0, subarray=[5], sum=5. For i=1: start=max(0,1-1)=0, subarray=[5,1], sum=6. For i=2: start=max(0,2-3)=0, subarray=[5,1,3], sum=9. For i=3: start=max(0,3-2)=1, subarray=[1,3,2], sum=6. Total: 5+6+9+6=26.
Example 3 — Small Array
$ Input: nums = [2,1]
Output: 5
💡 Note: For i=0: start=max(0,0-2)=0, subarray=[2], sum=2. For i=1: start=max(0,1-1)=0, subarray=[2,1], sum=3. Total: 2+3=5.

Constraints

  • 1 ≤ nums.length ≤ 103
  • 0 ≤ nums[i] ≤ nums.length

Visualization

Tap to expand
Sum of Variable Length Subarrays INPUT nums = [1, 2, 3, 2] 1 i=0 2 i=1 3 i=2 2 i=3 Subarrays for each i: i=0: start=max(0,0-1)=0 nums[0..0] = [1] i=1: start=max(0,1-2)=0 nums[0..1] = [1,2] i=2: start=max(0,2-3)=0 nums[0..2] = [1,2,3] i=3: start=max(0,3-2)=1 nums[1..3] = [2,3,2] ALGORITHM STEPS 1 Initialize sum = 0 Track running total 2 Loop i from 0 to n-1 Process each index 3 Calculate start index start = max(0, i-nums[i]) 4 Sum subarray elements Add nums[start..i] to sum Calculations: i=0: sum([1]) = 1 i=1: sum([1,2]) = 3 i=2: sum([1,2,3]) = 6 i=3: sum([2,3,2]) = 7 Total: 1+3+6+7 = 17 FINAL RESULT All subarray sums combined: Subarray Contributions [1] --> 1 [1,2] --> 3 [1,2,3] --> 6 [2,3,2] --> 5 Output: 15 OK - Sum Calculated! Key Insight: For each index i, we create a subarray starting from max(0, i - nums[i]) and ending at i. The optimal approach uses prefix sums to calculate each subarray sum in O(1) time, achieving O(n) total time complexity instead of O(n^2) with naive nested loops. TutorialsPoint - Sum of Variable Length Subarrays | Optimal Solution
Asked in
Google 25 Amazon 20
22.3K Views
Medium Frequency
~15 min Avg. Time
890 Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen