Find Maximum Non-decreasing Array Length - Problem

You are given a 0-indexed integer array nums. You can perform any number of operations, where each operation involves selecting a subarray of the array and replacing it with the sum of its elements.

For example, if the given array is [1,3,5,6] and you select subarray [3,5], the array will convert to [1,8,6].

Return the maximum length of a non-decreasing array that can be made after applying operations.

A subarray is a contiguous non-empty sequence of elements within an array.

Input & Output

Example 1 — Basic Merging
$ Input: nums = [5,2,4,6,3,7]
Output: 3
💡 Note: We can merge subarrays: [5] + [2,4] + [6,3,7] = [5,6,16]. This gives us a non-decreasing array of length 3.
Example 2 — Already Non-decreasing
$ Input: nums = [1,3,5,6]
Output: 4
💡 Note: Array is already non-decreasing, so no merging needed. Keep all elements: [1,3,5,6]. Length is 4.
Example 3 — Single Element
$ Input: nums = [1]
Output: 1
💡 Note: Single element is always non-decreasing. No operations needed. Length is 1.

Constraints

  • 1 ≤ nums.length ≤ 105
  • -109 ≤ nums[i] ≤ 109

Visualization

Tap to expand
Find Maximum Non-decreasing Array Length524637Input: [5, 2, 4, 6, 3, 7]5616[5][2,4][6,3,7]Merged Groups: 5 ≤ 6 ≤ 16 (Non-decreasing ✓)Maximum Length: 3By strategically merging subarrays, we achieve the longest possible non-decreasing array
Understanding the Visualization
1
Input Array
Given array [5,2,4,6,3,7]
2
Merge Strategy
Group elements to maintain non-decreasing sums
3
Result
Maximum length non-decreasing array
Key Takeaway
🎯 Key Insight: Use monotonic stack to greedily merge subarrays when they would violate non-decreasing property
Asked in
Google 15 Amazon 12 Meta 8 Microsoft 6
8.5K Views
Medium Frequency
~25 min Avg. Time
234 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