LeetCode/kt/shortest-subarray-to-be-removed-to-make-array-sorted.kt

23 lines
601 B
Kotlin
Raw Normal View History

class Solution {
fun findLengthOfShortestSubarray(arr: IntArray): Int {
var (left, right) = 0 to arr.size - 1
// shift right while ensorted
while (right > 0 && arr[right] >= arr[right - 1]) {
right -= 1
}
var shortest = right
while (left < right && (left < 1 || arr[left - 1] <= arr[left])) {
while (right < arr.size && arr[left] > arr[right]) {
right += 1
}
shortest = listOf(shortest, right - left - 1).min()
left += 1
}
return shortest
}
}