Class Solution
java.lang.Object
g1801_1900.s1846_maximum_element_after_decreasing_and_rearranging.Solution
1846 - Maximum Element After Decreasing and Rearranging.<p>Medium</p>
<p>You are given an array of positive integers <code>arr</code>. Perform some operations (possibly none) on <code>arr</code> so that it satisfies these conditions:</p>
<ul>
<li>The value of the <strong>first</strong> element in <code>arr</code> must be <code>1</code>.</li>
<li>The absolute difference between any 2 adjacent elements must be <strong>less than or equal to</strong> <code>1</code>. In other words, <code>abs(arr[i] - arr[i - 1]) <= 1</code> for each <code>i</code> where <code>1 <= i < arr.length</code> ( <strong>0-indexed</strong> ). <code>abs(x)</code> is the absolute value of <code>x</code>.</li>
</ul>
<p>There are 2 types of operations that you can perform any number of times:</p>
<ul>
<li><strong>Decrease</strong> the value of any element of <code>arr</code> to a <strong>smaller positive integer</strong>.</li>
<li><strong>Rearrange</strong> the elements of <code>arr</code> to be in any order.</li>
</ul>
<p>Return <em>the <strong>maximum</strong> possible value of an element in</em> <code>arr</code> <em>after performing the operations to satisfy the conditions</em>.</p>
<p><strong>Example 1:</strong></p>
<p><strong>Input:</strong> arr = [2,2,1,2,1]</p>
<p><strong>Output:</strong> 2</p>
<p><strong>Explanation:</strong></p>
<p>We can satisfy the conditions by rearranging <code>arr</code> so it becomes <code>[1,2,2,2,1]</code>.</p>
<p>The largest element in <code>arr</code> is 2.</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> arr = [100,1,1000]</p>
<p><strong>Output:</strong> 3</p>
<p><strong>Explanation:</strong></p>
<p>One possible way to satisfy the conditions is by doing the following:</p>
<ol>
<li>
<p>Rearrange <code>arr</code> so it becomes <code>[1,100,1000]</code>.</p>
</li>
<li>
<p>Decrease the value of the second element to 2.</p>
</li>
<li>
<p>Decrease the value of the third element to 3.</p>
</li>
</ol>
<p>Now <code>arr = [1,2,3], which</code> satisfies the conditions.</p>
<p>The largest element in <code>arr is 3.</code></p>
<p><strong>Example 3:</strong></p>
<p><strong>Input:</strong> arr = [1,2,3,4,5]</p>
<p><strong>Output:</strong> 5</p>
<p><strong>Explanation:</strong> The array already satisfies the conditions, and the largest element is 5.</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>1 <= arr.length <= 10<sup>5</sup></code></li>
<li><code>1 <= arr[i] <= 10<sup>9</sup></code></li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
maximumElementAfterDecrementingAndRearranging
public int maximumElementAfterDecrementingAndRearranging(int[] arr)
-