跟着Hint的内容做就基本出来了。sort之后,看第一位是不是1,不是的话设置为1,随后的位置的数字,由于是已经sort了,只用看其与后面一个数字的差值是否大于1,大于则置为其前一位数字+1。
class Solution: def maximumElementAfterDecrementingAndRearranging(self, arr: List[int]) -> int: arr = sorted(arr) index = 0 if arr[index] != 1: arr[index] = 1 for index in range(1, len(arr)): if arr[index] - arr[index-1] > 1: arr[index] = arr[index-1] + 1 return max(arr)