Skip to content

Commit 59b4a46

Browse files
committed
add Kotlin solution for 978. Longest Turbulent Subarray
1 parent 5e14e12 commit 59b4a46

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class Solution {
2+
fun maxTurbulenceSize(arr: IntArray): Int {
3+
if (arr.size == 1) return 1
4+
var previousEqualitySymbol = ' '
5+
var currentSubArraySize = 1
6+
var maxSubArraySize = 1
7+
for (i in 1..arr.lastIndex) {
8+
if (arr[i - 1] > arr[i] && previousEqualitySymbol != '>') {
9+
currentSubArraySize++
10+
maxSubArraySize = maxOf(maxSubArraySize, currentSubArraySize)
11+
previousEqualitySymbol = '>'
12+
continue
13+
}
14+
if (arr[i - 1] < arr[i] && previousEqualitySymbol != '<') {
15+
currentSubArraySize++
16+
maxSubArraySize = maxOf(maxSubArraySize, currentSubArraySize)
17+
previousEqualitySymbol = '<'
18+
continue
19+
}
20+
currentSubArraySize = if (arr[i - 1] == arr[i]) 1 else 2
21+
maxSubArraySize = maxOf(maxSubArraySize, currentSubArraySize)
22+
previousEqualitySymbol = when {
23+
arr[i - 1] < arr[i] -> '<'
24+
arr[i - 1] > arr[i] -> '>'
25+
else -> ' '
26+
}
27+
}
28+
return maxSubArraySize
29+
}
30+
}

0 commit comments

Comments
 (0)