Matej Focko
970f7c1060
URL: https://leetcode.com/problems/shortest-subarray-to-be-removed-to-make-array-sorted/ Signed-off-by: Matej Focko <me@mfocko.xyz>
22 lines
601 B
Kotlin
22 lines
601 B
Kotlin
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
|
||
}
|
||
}
|