4058. Maximum Pulse Value After One Subarray Rotation
SourceWeekly Contest 520 Q3DifficultyMediumRating1899
Description
You are given an integer array nums of length n.
Define the pulse value of an integer array arr as the alternating sum starting at index 0: pulse(arr) = arr[0] - arr[1] + arr[2] - arr[3] + ....
You may perform at most one operation on nums:
- Choose two indices
landrsuch that0 <= l < r < n. - Left-rotate the subarray
nums[l..r]by exactly one position. For example,[a, b, c, d]becomes[b, c, d, a].
Return the maximum pulse value that can be obtained after performing at most one such operation.
Example 1:
Input: nums = [1,5,2]
Output: 6
Explanation:
- The original pulse value is
1 - 5 + 2 = -2. - Rotate the subarray
nums[0..1]from[1, 5]to[5, 1]. - The resulting array is
[5, 1, 2]and its pulse value is5 - 1 + 2 = 6, which is the maximum possible.
Example 2:
Input: nums = [6,4,3]
Output: 7
Explanation:
- The original pulse value is
6 - 4 + 3 = 5. - Rotate the subarray
nums[1..2]from[4, 3]to[3, 4]. - The resulting array is
[6, 3, 4]and its pulse value is6 - 3 + 4 = 7, which is the maximum possible.
Example 3:
Input: nums = [9,7]
Output: 2
Explanation:
The original pulse value is 9 - 7 = 2, which is already maximum. Thus, no rotation is required.
Constraints:
1 <= n == nums.length <= 105-109 <= nums[i] <= 109
Solutions
Solution 1
1 | |
1 | |
1 | |
1 | |