Skip to content

Latest commit

 

History

History
109 lines (60 loc) · 2.6 KB

3196-maximize-total-cost-of-alternating-subarrays.adoc

File metadata and controls

109 lines (60 loc) · 2.6 KB

3196. Maximize Total Cost of Alternating Subarrays

{leetcode}/problems/maximize-total-cost-of-alternating-subarrays/[LeetCode - 3196. Maximize Total Cost of Alternating Subarrays ^]

You are given an integer array nums with length n.

The cost of a <span data-keyword="subarray-nonempty">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 i<sub>1</sub>, i<sub>2</sub>, …​, i<sub>k - 1</sub>, where 0 ⇐ i<sub>1</sub> < i<sub>2</sub> < …​ < i<sub>k - 1</sub> < n - 1, then the total cost will be:

cost(0, i<sub>1</sub>) + cost(i<sub>1</sub> + 1, i<sub>2</sub>) + …​ + cost(i<sub>k - 1</sub> + 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:

<div class="example-block"> Input: <span class="example-io">nums = [1,-2,3,4]

Output: <span class="example-io">10

Explanation:

One way to maximize the total cost is by splitting [1, -2, 3, 4] into subarrays [1, -2, 3] and [4]. The total cost will be (1 + 2 + 3) + 4 = 10.

Example 2:

<div class="example-block"> Input: <span class="example-io">nums = [1,-1,1,-1]

Output: <span class="example-io">4

Explanation:

One way to maximize the total cost is by splitting [1, -1, 1, -1] into subarrays [1, -1] and [1, -1]. The total cost will be (1 + 1) + (1 + 1) = 4.

Example 3:

<div class="example-block"> Input: <span class="example-io">nums = [0]

Output: 0

Explanation:

We cannot split the array further, so the answer is 0.

Example 4:

<div class="example-block"> Input: <span class="example-io">nums = [1,-1]

Output: <span class="example-io">2

Explanation:

Selecting the whole array gives a total cost of 1 + 1 = 2, which is the maximum.

Constraints:

  • 1 ⇐ nums.length ⇐ 105

  • -109 ⇐ nums[i] ⇐ 109

思路分析

一刷
link:{sourcedir}/_3196_MaximizeTotalCostOfAlternatingSubarrays.java[role=include]

参考资料