您的位置:首页 > 其它

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

2018-03-02 14:15 323 查看


//需要排序的最短子数组长度
public class GetMinLen{

//返回需要排序的子数组的长度
public static int GetMinArrLen(int[]arr)
{
if(arr==null||arr.length<2)
{
return 0;
}
//第一步:从右向左遍历获得最左边需要交换的位置
int NuMinIndex=arr.length-1;
int min=arr[arr.length-1];
for(int i=arr.length-2;i>=0;i--)
{
if(arr[i]>min)
{
NuMinIndex=i;
}else{
min=Math.min(arr[i],min);
}
}

//第二步:从左向右遍历获得最右边需要交换的位置
int NuMaxIndex=0;
int max=arr[0];
for(int i=1;i<arr.length;i++)
{
if(arr[i]<max)
{
NuMaxIndex=i;
}else
{
max=Math.max(arr[i],max);
}

}
return NuMaxIndex-NuMinIndex+1;
}
public static void main(String[]args)
{
//System.out.println("Hello");
int[]arr={1,5,3,4,2,6,7};
int[]arr2={2};
int[]arr3={};
System.out.println(GetMinArrLen(arr));
System.out.println(GetMinArrLen(arr2));
System.out.println(GetMinArrLen(arr3));

}
}

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