🗒️2009. 使数组连续的最少操作数
2025-4-11
| 2025-4-11
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Apr 11, 2025 01:10 AM
给你一个整数数组 nums 。每一次操作中,你可以将 nums 中 任意 一个元素替换成 任意 整数。
如果 nums 满足以下条件,那么它是 连续的 :
  • nums 中所有元素都是 互不相同 的。
  • nums 中 最大 元素与 最小 元素的差等于 nums.length - 1 。
比方说,nums = [4, 2, 5, 3] 是 连续的 ,但是 nums = [1, 2, 3, 5, 6] 不是连续的 。
请你返回使 nums 连续 的 最少 操作次数。

不定长滑动窗口

基本思路:找到左窗口移动的判断条件。
本题需要逆向思维。最少操作次数是不连续的,我们不好去确定。但是我们根据题意,找到满足最大 元素与 最小 元素的差等于 nums.length - 1 的一个最大窗口。
关于 unique 函数的使用
unique 函数功能是消除容器的相邻相等元素,并返回迭代器。若有连续N个重复元素,则只保留第 1 个出现的元素。经过unique 函数处理后,容器的大小没有发生变化,并不是真正的消除,只是相邻的多余重复元素被后续元素覆盖了。因此,处理实际问题时,unique 函数一般应用在容器元素排好序的情况下。

📎 参考

 
  • 【题单】滑动窗口与双指针
  • 2781. 最长合法子字符串的长度1031. 两个非重叠子数组的最大和
    Loading...