java.lang.Object
g1801_1900.s1846_maximum_element_after_decreasing_and_rearranging.Solution

public class Solution extends Object
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 Details

    • Solution

      public Solution()
  • Method Details

    • maximumElementAfterDecrementingAndRearranging

      public int maximumElementAfterDecrementingAndRearranging(int[] arr)