class Solution {
public:
int findLengthOfShortestSubarray(vector<int>& arr) {
int len = arr.size();
if(len == 1)
return 0;
int left = 0;
int count = len - 1;
for (int i = 0; i < len - 1; ++i) {
if (arr[i] > arr[i + 1]) {
left = i;
count = count - i;
break;
}
}
for (int j = len - 1; j > 0; --j) {
while (left >= 0 && arr[j] < arr[left]) {
--left;
}
count = min(count, j - left-1);
if (j - 1 > 0 && arr[j] < arr[j - 1]) {
break;
}
}
return count;
}
};