跟着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)