# LeetCode 1574. Shortest Subarray to be Removed to Make Array Sorted https://leetcode.com/problems/shortest-subarray-to-be-removed-to-make-array-sorted/description/ ## 題目大意 給定整數陣列 `arr` , 移除子陣列 (可空) 使得剩餘元素呈非遞減 求最短移除多長子陣列? ## 思考 這題就用 two pointer 技巧解就好 我覺得好像沒什麼好講的了 C++ 參考解答: ```cpp! class Solution { public: int findLengthOfShortestSubarray(vector<int> &arr) { const int n = arr.size(); int j = n - 1; while (j > 0 && arr[j - 1] <= arr[j]) --j; if (j == 0) return 0; int ans = j; for (int i = 0; i < n; ++i) { if (i > 0 && arr[i - 1] > arr[i]) break; while (j < n && arr[i] > arr[j]) ++j; ans = min(ans, j - i - 1); } return ans; } }; ``` Go 參考解答: ```go! func findLengthOfShortestSubarray(arr []int) int { n := len(arr) j := n - 1 for j > 0 && arr[j-1] <= arr[j] { j-- } if j == 0 { return 0 } ans := j for i := 0; i < n; i++ { if i > 0 && arr[i-1] > arr[i] { break } for j < n && arr[i] > arr[j] { j++ } if ans > (j - i - 1) { ans = j - i - 1 } } return ans } ```