给你一个整数数组 nums
和两个整数 x
和 k
。你可以执行以下操作任意次(包括零次):
nums
中的任意一个元素加 1 或减 1。返回为了使 nums
中 至少 包含 k 个长度 恰好 为 x
的不重叠子数组(每个子数组中的所有元素都相等)所需要的 最少 操作数。
子数组 是数组中连续、非空的一段元素。
示例 1:
输入: nums = [5,-2,1,3,7,3,6,4,-1], x = 3, k = 2
输出: 8
解释:
nums[1]
加 3;进行 2 次操作,将 nums[3]
减 2。得到的数组为 [5, 1, 1, 1, 7, 3, 6, 4, -1]
。nums[5]
加 1;进行 2 次操作,将 nums[6]
减 2。得到的数组为 [5, 1, 1, 1, 7, 4, 4, 4, -1]
。[1, 1, 1]
(下标 1 到 3)和 [4, 4, 4]
(下标 5 到 7)中的所有元素都相等。总共进行了 8 次操作,因此输出为 8。示例 2:
输入: nums = [9,-2,-2,-2,1,5], x = 2, k = 2
输出: 3
解释:
nums[4]
减 3。得到的数组为 [9, -2, -2, -2, -2, 5]
。[-2, -2]
(下标 1 到 2)和 [-2, -2]
(下标 3 到 4)中的所有元素都相等。总共进行了 3 次操作,因此输出为 3。
提示:
2 <= nums.length <= 105
-106 <= nums[i] <= 106
2 <= x <= nums.length
1 <= k <= 15
2 <= k * x <= nums.length