Skip to main content

Maximum Pulse Value After One Subarray Rotation - Solution & Explanation

Medium2 min read
Practice this problem

Problem Statement

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 l and r such that 0 <= 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 is 5 - 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 is 6 - 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 for this problem are being prepared.

Try solving it yourself

Video Solution

Leetcode 4058 | Maximum Pulse Value After One Subarray Rotation | Leetcode weekly contest 520CodeWithMeGuys992 views views

Watch 5 more video solutions →

Ready to solve this problem?

Practice Maximum Pulse Value After One Subarray Rotation with our built-in code editor and test cases.

Practice on FleetCode