Skip to content

Commit b9c0ea9

Browse files
authored
Create reverse-subarray-to-maximize-array-value.py
1 parent 310669d commit b9c0ea9

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Time: O(n)
2+
# Space: O(1)
3+
4+
class Solution(object):
5+
def maxValueAfterReverse(self, nums):
6+
"""
7+
:type nums: List[int]
8+
:rtype: int
9+
"""
10+
result, add, max_pair, min_pair = 0, 0, float("-inf"), float("inf")
11+
for i in xrange(1, len(nums)):
12+
result += abs(nums[i-1]-nums[i])
13+
add = max(add,
14+
abs(nums[0]-nums[i]) - abs(nums[i-1]-nums[i]),
15+
abs(nums[-1]-nums[i-1]) - abs(nums[i-1]-nums[i]))
16+
min_pair = min(min_pair, max(nums[i-1], nums[i]))
17+
max_pair = max(max_pair, min(nums[i-1], nums[i]))
18+
return result + max(add, (max_pair-min_pair)*2)

0 commit comments

Comments
 (0)