Talentd
FleetCode

2170. Minimum Operations to Make the Array Alternating

Medium35.7% acceptance2 companies

You are given a 0-indexed array nums consisting of n positive integers.

The array nums is called alternating if:

  • nums[i - 2] == nums[i], where 2 <= i <= n - 1.
  • nums[i - 1] != nums[i], where 1 <= i <= n - 1.

In one operation, you can choose an index i and change nums[i] into any positive integer.

Return the minimum number of operations required to make the array alternating.

Example 1:

Input: nums = [3,1,3,2,4,3]
Output: 3
Explanation:
One way to make the array alternating is by converting it to [3,1,3,1,3,1].
The number of operations required in this case is 3.
It can be proven that it is not possible to make the array alternating in less than 3 operations. 

Example 2:

Input: nums = [1,2,2,2,2]
Output: 2
Explanation:
One way to make the array alternating is by converting it to [1,2,1,2,1].
The number of operations required in this case is 2.
Note that the array cannot be converted to [2,2,2,2,2] because in this case nums[0] == nums[1] which violates the conditions of an alternating array.

Constraints:

  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 105

Asked at 2 companies

Hints open one at a time

Hint 1
Count the frequency of each element in odd positions in the array. Do the same for elements in even positions.
Hint 2
To minimize the number of operations we need to maximize the number of elements we keep from the original array.
Hint 3
What are the possible combinations of elements we can choose from odd indices and even indices so that the number of unchanged elements is maximized?
12:47
Still stuck?Read 3 approaches, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def minimumOperations(self, nums: List[int]) -> int:
3
Starter codePython 3Spaces: 4
Examples
Input
[3,1,3,2,4,3]
Input
[1,2,2,2,2]
Your code is saved on this device.Solution