[2, 6, 4, 8, 10, 9, 15]
max 記錄當(dāng)前數(shù)字之前的最大值 比如4之前的[2,6] 是6,一直找到最后一個滿足以上條件的坐標(biāo)媚污,標(biāo)記為end
min記錄當(dāng)前數(shù)字之后的最小值哪亿, 比如10之后的[9,15]最小值是9,
當(dāng)前值如果比max小脑奠,暫定為破壞遞增排序數(shù)組的最后一個數(shù)字end
[2, 6, 4, 8, 10, 9, 15] 就是4->9
當(dāng)前值如果大于min ,暫定為浦破壞遞增的第一個數(shù)start
10->6
所以start = 1 end=5 ,return 5-1+1 = 5,[6,4,8,10,9]
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
int findUnsortedSubarray(int* nums, int numsSize) {
int max = nums[0];
int min = nums[numsSize - 1];
int beg = -1;
int end = -2;
for (int i = 1; i < numsSize; i++) {
max = max(max, nums[i]);
min = min(min, nums[numsSize - i - 1]);
if (max > nums[i]) {
end = i;
}
if (min < nums[numsSize - i - 1]) {
beg = numsSize - i - 1;
}
}
return end - beg + 1;
}