Maximum Element After Decreasing and Rearranging - Problem
Maximum Element After Decreasing and Rearranging

You're given an array of positive integers and need to transform it to satisfy two key constraints:

Constraints to satisfy:
1. The first element must be 1
2. Adjacent elements can differ by at most 1 (i.e., |arr[i] - arr[i-1]| ≤ 1)

Available operations:
Decrease any element to a smaller positive integer
Rearrange elements in any order

Your goal is to find the maximum possible value any element can have after performing these operations optimally.

Example: With array [2,2,1,2,1], you could rearrange to [1,2,2,1,2] then adjust to [1,2,3,2,3], but the optimal solution gives us a maximum value of 3.

Input & Output

example_1.py — Basic Case
$ Input: [2,2,1,2,1]
Output: 3
💡 Note: After sorting: [1,1,2,2,2]. Set first to 1: [1,1,2,2,2]. Apply greedy: [1,2,3,3,3]. Maximum is 3.
example_2.py — Large Values
$ Input: [100,1,1000]
Output: 3
💡 Note: After sorting: [1,1,100]. Set first to 1: [1,1,100]. Apply greedy: [1,2,3]. Even with large values, we're limited by the adjacent difference constraint.
example_3.py — All Same Values
$ Input: [1,1,1,1]
Output: 4
💡 Note: After sorting: [1,1,1,1]. Set first to 1: [1,1,1,1]. Apply greedy: [1,2,3,4]. We can build a perfect staircase.

Constraints

  • 1 ≤ arr.length ≤ 105
  • 1 ≤ arr[i] ≤ 109
  • All elements are positive integers

Visualization

Tap to expand
Building the Optimal StaircaseInput blocks: [2,2,1,2,1]22121Step 1: Sort blocks [1,1,2,2,2]11222Step 2-3: Build staircase greedily12333Maximum Height: 3Each step can only increase by 0 or 1 from the previous step
Understanding the Visualization
1
Sort the Blocks
Arrange blocks from smallest to largest to maximize our building potential
2
Start at Height 1
The first step must be at height 1 (constraint requirement)
3
Build Greedily
For each subsequent step, use the smaller of: current block height or previous step + 1
4
Find Tallest Step
The maximum height achieved is our answer
Key Takeaway
🎯 Key Insight: After sorting, we can greedily build the tallest possible staircase by ensuring each step is at most 1 higher than the previous step.
Asked in
Amazon 45 Google 32 Microsoft 28 Meta 21
52.3K Views
Medium Frequency
~15 min Avg. Time
1.8K 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