题目描述
题目描述
题解
题解
提交记录
提交记录
困难

给你一个整数数组 nums 和一个整数 maxC。

如果一个 子数组 的所有元素的最大公因数(简称 HCF) 大于或等于 2,则称该子数组是稳定的。

一个数组的 稳定性因子 定义为其 最长 稳定子数组的长度。

你 最多 可以修改数组中的 maxC 个元素为任意整数。

在最多 maxC 次修改后,返回数组的 最小 可能稳定性因子。如果没有稳定的子数组,则返回 0。

注意:

  • 子数组 是数组中连续的元素序列。
  • 数组的 最大公因数(HCF)是能同时整除数组中所有元素的最大整数。
  • 如果长度为 1 的 子数组 中唯一元素大于等于 2,那么它是稳定的,因为 HCF([x]) = x。
 

 

示例 1:

输入:nums = [3,5,10], maxC = 1

输出:1

解释:

  • 稳定的子数组 [5, 10] 的 HCF = 5,其稳定性因子为 2。
  • 由于 maxC = 1,一个最优策略是将 nums[1] 改为 7,得到 nums = [3, 7, 10]。
  • 现在,没有长度大于 1 的子数组的 HCF >= 2。因此,最小可能稳定性因子是 1。

示例 2:

输入:nums = [2,6,8], maxC = 2

输出:1

解释:

  • 子数组 [2, 6, 8] 的 HCF = 2,其稳定性因子为 3。
  • 由于 maxC = 2,一个最优策略是将 nums[1] 改为 3,并将 nums[2] 改为 5,得到 nums = [2, 3, 5]。
  • 现在,没有长度大于 1 的子数组的 HCF >= 2。因此,最小可能稳定性因子是 1。

示例 3:

输入:nums = [2,4,9,6], maxC = 1

输出:2

解释:

  • 稳定的子数组有:
    • [2, 4] 的 HCF = 2,稳定性因子为 2。
    • [9, 6] 的 HCF = 3,稳定性因子为 2。
  • 由于 maxC = 1,由于存在两个独立的稳定子数组,稳定性因子 2 无法被进一步降低。因此,最小可能稳定性因子是 2。

 

提示:

  • 1 <= n == nums.length <= 105
  • 1 <= nums[i] <= 109
  • 0 <= maxC <= n
 
代码
代码
测试用例
测试用例
测试结果
测试结果