中等
给你一个长度为 n 的整数数组 nums。
如果 nums[i] > nums[i - 1] 且 nums[i] > nums[i + 1],则下标 i (0 < i < n - 1) 是 特殊的 。
你可以执行操作,选择 任意 下标 i 并将 nums[i] 增加 1。
你的目标是:
- 最大化 特殊 下标的数量。
- 最小化 达到该 最大值 所需的总 操作 数。
返回所需的 最小 总操作数。
示例 1:
输入: nums = [1,2,2]
输出: 1
解释:
- 从
nums = [1, 2, 2]开始。 - 将
nums[1]增加 1,数组变为[1, 3, 2]。 - 最终数组是
[1, 3, 2],有 1 个特殊的下标,这是可达到的最大值。 - 不可能用更少的操作达到这个数量的特殊的下标。因此,答案是 1。
示例 2:
输入: nums = [2,1,1,3]
输出: 2
解释:
- 从
nums = [2, 1, 1, 3]开始。 - 在下标 1 处执行 2 次操作,数组变为
[2, 3, 1, 3]。 - 最终数组是
[2, 3, 1, 3],有 1 个特殊的下标,这是可达到的最大值。因此,答案是 2。
示例 3:
输入: nums = [5,2,1,4,3]
输出: 4
解释:
- 从
nums = [5, 2, 1, 4, 3]开始。 - 在下标 1 处执行 4 次操作,数组变为
[5, 6, 1, 4, 3]。 - 最终数组是
[5, 6, 1, 4, 3],有 2 个特殊的下标,这是可达到的最大值。因此,答案是 4。
提示:
3 <= n <= 1051 <= nums[i] <= 109