classSolution {
public:int maxTurbulenceSize(vector<int>& arr) {
int n = arr.size(), ans =1, l =0;
for (int r =1; r < n; ++r) {
if (arr[r-1] == arr[r]) l = r;
elseif (r ==1|| (arr[r-2] < arr[r-1] && arr[r-1] > arr[r]) || (arr[r-2] > arr[r-1] && arr[r-1] < arr[r])) {
// continue
} else l = r-1;
ans = max(ans, r-l+1);
}
return ans;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
funcmaxTurbulenceSize(arr []int) int {
n, ans, l:= len(arr), 1, 0forr:=1; r < n; r++ {
ifarr[r-1] ==arr[r] {
l = r } elseifr==1|| (arr[r-2] < arr[r-1] &&arr[r-1] > arr[r]) || (arr[r-2] > arr[r-1] &&arr[r-1] < arr[r]) {
// continue } else {
l = r-1 }
ifr-l+1 > ans {
ans = r-l+1 }
}
returnans}
1
2
3
4
5
6
7
8
9
10
11
12
13
classSolution {
publicintmaxTurbulenceSize(int[] arr) {
int n = arr.length, ans = 1, l = 0;
for (int r = 1; r < n; ++r) {
if (arr[r-1]== arr[r]) l = r;
elseif (r == 1 || (arr[r-2]< arr[r-1]&& arr[r-1]> arr[r]) || (arr[r-2]> arr[r-1]&& arr[r-1]< arr[r])) {
// continue } else l = r-1;
ans = Math.max(ans, r-l+1);
}
return ans;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
classSolution {
funmaxTurbulenceSize(arr: IntArray): Int {
val n = arr.size
var ans = 1var l = 0for (r in1 until n) {
if (arr[r-1] == arr[r]) l = r
elseif (r ==1|| (arr[r-2] < arr[r-1] && arr[r-1] > arr[r]) || (arr[r-2] > arr[r-1] && arr[r-1] < arr[r])) {
// continue
} else l = r-1 ans = maxOf(ans, r-l+1)
}
return ans
}
}
1
2
3
4
5
6
7
8
9
10
11
12
classSolution:
defmaxTurbulenceSize(self, arr: list[int]) -> int:
n, ans, l = len(arr), 1, 0for r in range(1, n):
if arr[r-1] == arr[r]:
l = r
elif r ==1or (arr[r-2] < arr[r-1] and arr[r-1] > arr[r]) or (arr[r-2] > arr[r-1] and arr[r-1] < arr[r]):
passelse:
l = r-1 ans = max(ans, r-l+1)
return ans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
impl Solution {
pubfnmax_turbulence_size(arr: Vec<i32>) -> i32 {
let n = arr.len();
letmut ans =1;
letmut l =0;
for r in1..n {
if arr[r-1] == arr[r] {
l = r;
} elseif r ==1|| (arr[r-2] < arr[r-1] && arr[r-1] > arr[r]) || (arr[r-2] > arr[r-1] && arr[r-1] < arr[r]) {
// continue
} else {
l = r-1;
}
ans = ans.max(r-l+1);
}
ans
}
}