跳到主要内容

2009.使数组连续的最少操作数

链接:2009.使数组连续的最少操作数
难度:Hard
标签:数组、哈希表、二分查找、滑动窗口
简介:给你一个整数数组 nums 。每一次操作中,你可以将 nums 中 任意 一个元素替换成 任意 整数。请你返回使 nums 连续 的 最少 操作次数。

题解 1 - python

  • 编辑时间:2024-04-08
  • 执行用时:736ms
  • 内存消耗:34.4MB
  • 编程语言:python
  • 解法介绍:排序后,对一个点当作左侧点进行。
class Solution:
def minOperations(self, nums: List[int]) -> int:
n = len(nums)
arr = sorted(set(nums))
ans = inf
for i in range(len(arr)):
l = i
r = len(arr)
while l < r:
m = (l + r) // 2
if arr[m] > arr[i] + n - 1: r = m
else: l = m + 1
ans = min(ans, n - len(arr) + len(arr) - (l - i))
return ans