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