Longest Turbulent Subarray LeetCode solution in Java

1
class Solution {
2
public int maxTurbulenceSize(int[] arr) {
3
if (arr.length == 1) {
4
return 1;
5
}
6
int l = 0, r = 1;
7
int diff = arr[l] - arr[r];
8
int max;
9
if (diff == 0) {
10
l = 1;
11
r = 1;
12
max = 1;
13
} else {
14
l = 0;
15
r = 1;
16
max = 2;
17
}
18
for (int i = 1; r < arr.length - 1; i++) {
19
int nextdiff = arr[i] - arr[i + 1];
20
if (diff < 0) {
21
if (nextdiff > 0) {
22
r++;
23
} else if (nextdiff == 0) {
24
l = i + 1;
25
r = i + 1;
26
} else {
27
l = i;
28
r = i + 1;
29
}
30
} else {
31
if (nextdiff < 0) {
32
r++;
33
} else if (nextdiff == 0) {
34
l = i + 1;
35
r = i + 1;
36
} else {
37
l = i;
38
r = i + 1;
39
}
40
}
41
diff = nextdiff;
42
max = Math.max(max, r - l + 1);
43
}
44
return max;
45
}
46
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0