[Java] Increasing From Left, Right and Merge O(n)
Idea:\n1. You need to find some sequence from 0th index which is in increasing order, let this sequence a_1 <= a_2 <= ... <= a_i\n2. Then you need to find some 
Idea:\n1. You need to find some sequence from 0th index which is in increasing order, let this sequence `a_1 <= a_2 <= ... <= a_i`\n2. Then you need to find some sequence from the back which is in decreasing order such that `b_j <= b_(j+1) <= ... <= b_n` (j <= i)\n\nThen it is guranteed you need to remove subarray from (i + 1, j - 1). But it is possible if we could merge some part from  `b_j <= b_(j+1) <= ... <= b_n`, with `a_1 <= a_2 <= ... <= a_i`, to create a bigger increasing subarray.\n```\nclass Solution {\n    public int findLengthOfShortestSubarray(int[] arr) {\n        int left = 0;\n        while(left + 1 < arr.length && arr[left] <= arr[left+1]) left++;\n        if(left == arr.length - 1) return 0;\n        \n        int right = arr.length - 1;\n        while(right > left && arr[right-1] <= arr[right]) right--;\n        int result = Math.min(arr.length - left - 1, right);\n        \n        int i = 0;\n        int j = right;\n        while(i <= left && j < arr.length) {\n            if(arr[j] >= arr[i]) {\n                result = Math.min(result, j - i - 1);\n                i++;\n            }else {\n                j++;\n            }   \n        }\n        return result;\n    }\n}\n```
[]