您的位置:首页 > 其它

需要排序的最短子数组长度

2016-03-09 22:16 323 查看
/**

* 需要排序的最短子数组长度

* @author Administrator

* 如 arr=[1,5,3,4,2,6,7] 返回4 因为只有[5,3,4,2]需要排序

*/

public class getMinLength {

public static void main(String[] args) {

int[] arr = {1,5,3,4,2,6,7};

System.out.println(getMinlength(arr));

}

public static int getMinlength(int[] arr){
if(arr==null||arr.length==0){
return 0;
}
int length = arr.length;

int min = arr[length-1];
int noMinIndex = -1;
for(int i=length-2; i>=0; i--){
if(arr[i]>min){
noMinIndex = i;
}else{
min = Math.min(min, arr[i]);
}
}
if(noMinIndex==-1){
return 0;
}

int max = arr[0];
int noMaxIndex = -1;
for(int i=1; i<length; i++){
if(arr[i]<max){
noMaxIndex = i;
}else{
max = Math.max(max, arr[i]);
}
}
return noMaxIndex-noMinIndex+1;
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: