diff --git a/kt/shortest-subarray-to-be-removed-to-make-array-sorted.kt b/kt/shortest-subarray-to-be-removed-to-make-array-sorted.kt new file mode 100644 index 0000000..f9c556f --- /dev/null +++ b/kt/shortest-subarray-to-be-removed-to-make-array-sorted.kt @@ -0,0 +1,22 @@ +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 + } +}