3196. Maximize Total Cost of Alternating Subarrays
3196. Maximize Total Cost of Alternating Subarrays
Description
You are given an integer array nums
with length n
.
The cost of a subarray nums[l..r]
, where 0 <= l <= r < n
, is defined as:
cost(l, r) = nums[l] - nums[l + 1] + ... + nums[r] * (−1)^r − l
Your task is to split nums
into subarrays such that the total cost of the subarrays is maximized, ensuring each element belongs to exactly one subarray.
Formally, if nums
is split into k
subarrays, where k > 1
, at indices i1, i2, …, ik − 1, where 0 <= i1 < i2 < … < ik - 1 < n - 1, then the total cost will be:
cost(0, i1) + cost(i1 + 1, i2) + … + cost(ik − 1 + 1, n − 1)
Return an integer denoting the maximum total cost of the subarrays after splitting the array optimally.
Note: If nums
is not split into subarrays, i.e. k = 1
, the total cost is simply cost(0, n - 1)
.
Example 1:
1 | Input: nums = [1,-2,3,4] |
Example 2:
1 | Input: nums = [1,-1,1,-1] |
Example 3:
1 | Input: nums = [0] |
Example 4:
1 | Input: nums = [1,-1] |
Constraints:
1 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10^9
Hints/Notes
- Weekly Contest 403
Solution
Language: C++
1 | class Solution { |