class Solution:
def minOperations(self, nums: List[int]) -> int:
N = len(nums)
res = float("inf")
nums = sorted(set(nums))
n = len(nums)
for i in range(n):
noChange = 1
for j in range(i + 1, n):
if nums[i] < nums[j] < nums[i] + N:
noChange += 1
res = min(res, N - noChange)
return resclass Solution:
def minOperations(self, nums: List[int]) -> int:
N = len(nums)
res = float("inf")
nums = sorted(set(nums))
n = len(nums)
for i in range(n):
l, r = i, n
while l < r:
mid = (l + r) // 2
if nums[mid] < nums[i] + N:
l = mid + 1
else:
r = mid
noChange = l - i
res = min(res, N - noChange)
return resclass Solution:
def minOperations(self, nums: List[int]) -> int:
length = len(nums)
nums = sorted(set(nums))
res = length
r = 0
for l in range(len(nums)):
while r < len(nums) and nums[r] < nums[l] + length:
r += 1
window = r - l
res = min(res, length - window)
return resclass Solution:
def minOperations(self, nums: List[int]) -> int:
length = len(nums)
nums.sort()
res = length
n = 1
for i in range(1, length):
if nums[i] != nums[i - 1]:
nums[n] = nums[i]
n += 1
l = 0
for r in range(n):
l += (nums[r] - nums[l] > length - 1)
return length - (n - l)