需要排序的最短子数组长度
2017-03-02 11:12
295 查看
自己debug
public class MinLength {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={1,5,4,3,2,6,7};
System.out.println(getMinglength(arr));
}
public static int getMinglength(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;
}
}
public class MinLength {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={1,5,4,3,2,6,7};
System.out.println(getMinglength(arr));
}
public static int getMinglength(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;
}
}
相关文章推荐
- 需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 数组与矩阵---需要排序的最短子数组长度
- 需要排序的最短子数组的长度
- [算法]需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组的长度
- 求需要排序的最短子数组的长度
- 需要排序的最短子数组
- 算法--求需要排序的最短子数组问题
- 待排序的最短子数组长度(C++版)
- 最短排序数组(动态规划)
- 数组------最短排序+左右最值最大差+局部最小值位置+子数组最大乘积+多数组中位数
- 用qsort对字符串数组排序需要注意的几个问题
- bufferedinputstream也需要指定一个数组长度呀?
- 索引高效排序法,10000长度随机数组排序 200毫秒
- 未排序正数数组中累加和为给定值的最长子数组长度