//需要排序的最短子数组长度
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));
}
}
需要排序的最短子数组长度
最新推荐文章于 2022-11-07 22:28:50 发布