给你一个长度为 n 的循环整数数组 nums。
如果下标 i 对应的值 严格大于 其相邻元素,则该下标是一个 峰值 :
i > 0,下标 i 的 前一个 相邻元素是 nums[i - 1],否则是 nums[n - 1]。i < n - 1,下标 i 的 后一个 相邻元素是 nums[i + 1],否则是 nums[0]。你可以执行以下操作 任意 次数:
i 并将 nums[i] 增加 1。返回使数组包含 至少 k 个峰值所需的 最小 操作数。如果不可能,返回 -1。
示例 1:
输入: nums = [2,1,2], k = 1
输出: 1
解释:
k = 1 个峰值,我们可以将 nums[2] = 2 增加到 3。nums[2] = 3 严格大于其相邻元素 nums[0] = 2 和 nums[1] = 1。示例 2:
输入: nums = [4,5,3,6], k = 2
输出: 0
解释:
k = 2 个峰值。nums[1] = 5 严格大于其相邻元素 nums[0] = 4 和 nums[2] = 3。nums[3] = 6 严格大于其相邻元素 nums[2] = 3 和 nums[0] = 4。示例 3:
输入: nums = [3,7,3], k = 2
输出: -1
解释:
在这个数组中不可能有至少 k = 2 个峰值。因此,答案是 -1。
提示:
2 <= n == nums.length <= 5000-105 <= nums[i] <= 1050 <= k <= n