LeetCode 1846. 减小和重新排列数组后的最大元素

Posted Alex Hub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1846. 减小和重新排列数组后的最大元素相关的知识,希望对你有一定的参考价值。

1846. 减小和重新排列数组后的最大元素

Idea

这题其实挺简单的,首先把数组排序,然后按照要求把数组的第一位设置为1,之后遍历整个数组,按照约束条件逐个过滤,对于不符合条件的idx数,把它重置为arr[idx - 1] + 1。

Code

Python

class Solution:
    def maximumElementAfterDecrementingAndRearranging(self, arr: List[int]) -> int:
        arr.sort()
        arr[0] = 1
        for idx in range(1, len(arr)):
            if abs(arr[idx] - arr[idx - 1]) > 1:
                arr[idx] = arr[idx - 1] + 1
        return arr[-1]

以上是关于LeetCode 1846. 减小和重新排列数组后的最大元素的主要内容,如果未能解决你的问题,请参考以下文章

减小和重新排列数组后的最大元素_leetcode

1846. 减小和重新排列数组后的最大元素贪心算法

《LeetCode之每日一题》:92.减小和重新排列数组后的最大元素

LeetCode192周赛-5428. 重新排列数组

LeetCode192周赛-5428. 重新排列数组

LeetCode 1470. 重新排列数组 / 654. 最大二叉树 / 998. 最大二叉树 II