581最短無秩序連続したサブアレイ
整数の配列を考えると、あなたは連続したサブ配列を探す必要があり、サブアレイの昇順にソートした場合、全体の配列は、昇順になります。
あなたは、サブ配列は、その長さの最短、お願い出力されるはずです。
例1:
入力が[2,6、4、8、10、9、15]
出力:5
説明:昇順で[6、4、8、10、9]にあなたが唯一の必要性は、テーブル全体を昇順に変更されます。
説明:
範囲の入力配列の長さ[1 10000]。
入力アレイはそう= <平均値を昇順、重複する要素を含んでいてもよいです。
class Solution {
public int findUnsortedSubarray(int[] nums) {
if(nums.length == 0 || nums.length == 1 || nums == null) {
return 0;
}
int len = nums.length;
int temp=0;
int left = -1, right = -1;
int max = nums[0], min = nums[len - 1];
for(int i = 1; i < len; i++) {
if (max > nums[i]) {
right = i;
} else {
max = nums[i];
}
temp= len - i - 1;
if (min < nums[temp]) {
left = temp;
} else {
min = nums[temp];
}
}
return right > left ? right - left + 1 : 0;
}
}