3810. Minimum Operations to Reach Target Array
Description
You are given two integer arrays nums and target, each of length n, where nums[i] is the current value at index i and target[i] is the desired value at index i.
You may perform the following operation any number of times (including zero):
- Choose an integer value
x - Find all maximal contiguous segments where
nums[i] == x(a segment is maximal if it cannot be extended to the left or right while keeping all values equal tox) - For each such segment
[l, r], update simultaneously:nums[l] = target[l], nums[l + 1] = target[l + 1], ..., nums[r] = target[r]
Return the minimum number of operations required to make nums equal to target.
Β
Example 1:
Input: nums = [1,2,3], target = [2,1,3]
Output: 2
Explanation:βββββββ
- Choose
x = 1: maximal segment[0, 0]updated -> nums becomes[2, 2, 3] - Choose
x = 2: maximal segment[0, 1]updated (nums[0]stays 2,nums[1]becomes 1) ->numsbecomes[2, 1, 3] - Thus, 2 operations are required to convert
numstotarget.ββββββββββββββ
Example 2:
Input: nums = [4,1,4], target = [5,1,4]
Output: 1
Explanation:
- Choose
x = 4: maximal segments[0, 0]and[2, 2]updated (nums[2]stays 4) ->numsbecomes[5, 1, 4] - Thus, 1 operation is required to convert
numstotarget.
Example 3:
Input: nums = [7,3,7], target = [5,5,9]
Output: 2
Explanation:
- Choose
x = 7: maximal segments[0, 0]and[2, 2]updated ->numsbecomes[5, 3, 9] - Choose
x = 3: maximal segment[1, 1]updated ->numsbecomes[5, 5, 9] - Thus, 2 operations are required to convert
numstotarget.
Β
Constraints:
1 <= n == nums.length == target.length <= 1051 <= nums[i], target[i] <= 105
Solutions
Solution 1: Hash Table
According to the problem description, we only need to count the number of distinct \(\text{nums}[i]\) where \(\text{nums}[i] \ne \text{target}[i]\). Therefore, we can use a hash table to store these distinct \(\text{nums}[i]\) and finally return the size of the hash table.
The time complexity is \(O(n)\), and the space complexity is \(O(n)\), where \(n\) is the length of the array.
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |