1
class Solution {
2

3
private int getAbsoluteDifference(int a, int b) {
4
return Math.abs(a - b);
5
}
6

7
public int maxValueAfterReverse(int[] nums) {
8
int n = nums.length;
9
int result = 0;
10
for (int i = 0; i < n - 1; i++) result += getAbsoluteDifference(nums[i], nums[i + 1]);
11

12
int minLine = Integer.MIN_VALUE;
13
int maxLine = Integer.MAX_VALUE;
14
for (int i = 0; i < n - 1; i++) {
15
minLine = Math.max(minLine, Math.min(nums[i], nums[i + 1]));
16
maxLine = Math.min(maxLine, Math.max(nums[i], nums[i + 1]));
17
}
18
int diff = Math.max(0, (minLine - maxLine) * 2);
19
for (int i = 1; i < n - 1; i++)
20
diff =
21
Math.max(
22
diff,
23
getAbsoluteDifference(nums[0], nums[i + 1])
24
- getAbsoluteDifference(nums[i], nums[i + 1]));
25

26
for (int i = 0; i < n - 1; i++)
27
diff =
28
Math.max(
29
diff,
30
getAbsoluteDifference(nums[n - 1], nums[i])
31
- getAbsoluteDifference(nums[i + 1], nums[i]));
32
return result + diff;
33
}
34
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0