From 7a36377e5c6b59d20423905513d8082816f2ec25 Mon Sep 17 00:00:00 2001 From: rain84 Date: Sat, 16 Nov 2024 19:31:08 +0300 Subject: [PATCH] feat: add solutions to lc problem: No.1574 --- .../README.md | 40 +++++++++++++++++++ .../README_EN.md | 40 +++++++++++++++++++ .../Solution2.js | 15 +++++++ .../Solution2.ts | 15 +++++++ 4 files changed, 110 insertions(+) create mode 100644 solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.js create mode 100644 solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.ts diff --git a/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README.md b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README.md index e72ada63b1b4c..870a11b20fb03 100644 --- a/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README.md +++ b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README.md @@ -326,6 +326,46 @@ func findLengthOfShortestSubarray(arr []int) int { } ``` +#### TypeScript + +```ts +function findLengthOfShortestSubarray(arr: number[]): number { + let [l, r, n] = [0, arr.length - 1, arr.length]; + + while (r && arr[r - 1] <= arr[r]) r--; + if (r === 0) return 0; + + let ans = r; + while (l < r && (!l || arr[l - 1] <= arr[l])) { + while (r < n && arr[l] > arr[r]) r++; + ans = Math.min(ans, r - l - 1); + l++; + } + + return ans; +} +``` + +#### JavaScript + +```js +function findLengthOfShortestSubarray(arr) { + let [l, r, n] = [0, arr.length - 1, arr.length]; + + while (r && arr[r - 1] <= arr[r]) r--; + if (r === 0) return 0; + + let ans = r; + while (l < r && (!l || arr[l - 1] <= arr[l])) { + while (r < n && arr[l] > arr[r]) r++; + ans = Math.min(ans, r - l - 1); + l++; + } + + return ans; +} +``` + diff --git a/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README_EN.md b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README_EN.md index ced6c9689c735..20605036e7851 100644 --- a/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README_EN.md +++ b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/README_EN.md @@ -298,6 +298,46 @@ func findLengthOfShortestSubarray(arr []int) int { } ``` +#### TypeScript + +```ts +function findLengthOfShortestSubarray(arr: number[]): number { + let [l, r, n] = [0, arr.length - 1, arr.length]; + + while (r && arr[r - 1] <= arr[r]) r--; + if (r === 0) return 0; + + let ans = r; + while (l < r && (!l || arr[l - 1] <= arr[l])) { + while (r < n && arr[l] > arr[r]) r++; + ans = Math.min(ans, r - l - 1); + l++; + } + + return ans; +} +``` + +#### JavaScript + +```js +function findLengthOfShortestSubarray(arr) { + let [l, r, n] = [0, arr.length - 1, arr.length]; + + while (r && arr[r - 1] <= arr[r]) r--; + if (r === 0) return 0; + + let ans = r; + while (l < r && (!l || arr[l - 1] <= arr[l])) { + while (r < n && arr[l] > arr[r]) r++; + ans = Math.min(ans, r - l - 1); + l++; + } + + return ans; +} +``` + diff --git a/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.js b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.js new file mode 100644 index 0000000000000..732f1ea498088 --- /dev/null +++ b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.js @@ -0,0 +1,15 @@ +function findLengthOfShortestSubarray(arr) { + let [l, r, n] = [0, arr.length - 1, arr.length]; + + while (r && arr[r - 1] <= arr[r]) r--; + if (r === 0) return 0; + + let ans = r; + while (l < r && (!l || arr[l - 1] <= arr[l])) { + while (r < n && arr[l] > arr[r]) r++; + ans = Math.min(ans, r - l - 1); + l++; + } + + return ans; +} diff --git a/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.ts b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.ts new file mode 100644 index 0000000000000..416236227fa2d --- /dev/null +++ b/solution/1500-1599/1574.Shortest Subarray to be Removed to Make Array Sorted/Solution2.ts @@ -0,0 +1,15 @@ +function findLengthOfShortestSubarray(arr: number[]): number { + let [l, r, n] = [0, arr.length - 1, arr.length]; + + while (r && arr[r - 1] <= arr[r]) r--; + if (r === 0) return 0; + + let ans = r; + while (l < r && (!l || arr[l - 1] <= arr[l])) { + while (r < n && arr[l] > arr[r]) r++; + ans = Math.min(ans, r - l - 1); + l++; + } + + return ans; +}