Longest Turbulent Subarray LeetCode solution in C++

1
class Solution {
2
public:
3
int maxTurbulenceSize(vector<int> &arr) {
4
vector<int> table1(arr.size(), 0);
5
vector<int> table2(arr.size(), 0);
6
table1[0] = 1;
7
table2[0] = 1;
8
int max_len = 1;
9
for (int i = 1; i < arr.size(); ++i) {
10
table1[i] = 1;
11
table2[i] = 1;
12
if (arr[i] < arr[i - 1] && (i & 1) == 0) {
13
table1[i] = table1[i - 1] + 1;
14
} else if (arr[i] > arr[i - 1] && (i & 1) == 1) {
15
table1[i] = table1[i - 1] + 1;
16
}
17
if (arr[i] > arr[i - 1] && (i & 1) == 0) {
18
table2[i] = table2[i - 1] + 1;
19
} else if (arr[i] < arr[i - 1] && (i & 1) == 1) {
20
table2[i] = table2[i - 1] + 1;
21
}
22
max_len = max(max_len, table1[i]);
23
max_len = max(max_len, table2[i]);
24
}
25
return max_len;
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0