https://leetcode-cn.com/problems/sub-sort-lcci/
思路:
从左往右遍历,寻找当前遍历过的数中最大的值,并与当前值比较,如果当前值小于最大值,记录当前值的位置r,
从右往左遍历,寻找当前遍历过的数中最小的值,并与当前值比较,如果当前值大于最小值,记录当前值的位置l,
最后返回{l,r}
class Solution {
public int[] subSort(int[] array) {
if(array.length==0)return new int[] {-1,-1};
int max = array[0];
int index = 0;
int r = -1;
while(index<array.length){
max = Math.max(max,array[index]);
if(array[index]<max){
r=index;
}
index++;
}
int min = array[array.length-1];
index = array.length-1;
int l = -1;
while(index>=0){
min = Math.min(min,array[index]);
if(array[index]>min){
l=index;
}
index--;
}
return new int[] {l,r};
}
}
网友评论