中等
给你一个 下标从 1 开始 的整数数组 nums。
你可以选择两个 不同 的值 x 和 y,并 最多 执行一次以下操作:
- 将
nums中所有值为x的元素替换为y。
返回执行操作后,相邻且相等的元素对数量的 最大值 。
示例 1:
输入: nums = [1,2,3,2]
输出: 2
解释:
- 一种最优方案是选择
x = 3和y = 2。 - 得到的数组为
[1, 2, 2, 2]。 - 有 2 对相邻且相等的元素:
(nums[2], nums[3])和(nums[3], nums[4])。 - 因此,答案为 2。
示例 2:
输入: nums = [1,2,1,2,1]
输出: 4
解释:
- 一种最优方案是选择
x = 1和y = 2。 - 得到的数组为
[2, 2, 2, 2, 2]。 - 有 4 对相邻且相等的元素:
(nums[1], nums[2])、(nums[2], nums[3])、(nums[3], nums[4])和(nums[4], nums[5])。 - 因此,答案为 4。
示例 3:
输入: nums = [1,1,1]
输出: 2
解释:
- 一种最优方案是不执行任何操作。
- 因此,得到的数组仍为
[1, 1, 1]。 - 有 2 对相邻且相等的元素:
(nums[1], nums[2])和(nums[2], nums[3])。 - 因此,答案为 2。
提示:
2 <= nums.length <= 1051 <= nums[i] <= 109