3229. Minimum Operations to Make Array Equal to Target
Description
You are given two positive integer arrays nums
and target
, of the same length.
In a single operation, you can select any subarray of nums
and increment each element within that subarray by 1 or decrement each element within that subarray by 1.
Return the minimum number of operations required to make nums
equal to the array target
.
Example 1:
Input: nums = [3,5,1,2], target = [4,6,2,4]
Output: 2
Explanation:
We will perform the following operations to make nums
equal to target
:
- Increment nums[0..3]
by 1, nums = [4,6,2,3]
.
- Increment nums[3..3]
by 1, nums = [4,6,2,4]
.
Example 2:
Input: nums = [1,3,2], target = [2,1,4]
Output: 5
Explanation:
We will perform the following operations to make nums
equal to target
:
- Increment nums[0..0]
by 1, nums = [2,3,2]
.
- Decrement nums[1..1]
by 1, nums = [2,2,2]
.
- Decrement nums[1..1]
by 1, nums = [2,1,2]
.
- Increment nums[2..2]
by 1, nums = [2,1,3]
.
- Increment nums[2..2]
by 1, nums = [2,1,4]
.
Constraints:
1 <= nums.length == target.length <= 105
1 <= nums[i], target[i] <= 108
Solutions
Solution 1: Dynamic Programming
We can first calculate the difference between the arrays $\textit{nums}$ and $\textit{target}$. For a difference array, we find continuous intervals where the signs of the differences are the same. For each interval, we add the absolute value of the first element to the result. For the subsequent elements, if the absolute value of the difference is greater than the absolute value of the previous difference, we add the difference of the absolute values to the result.
The time complexity is $O(n)$, where $n$ is the length of the array $\textit{nums}$. The space complexity is $O(1)$.
Similar problems:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|