需要排序的最短子数组长度
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));
}
}
相关文章推荐
- 求需要排序的最短子数组的长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组的长度
- 需要排序的最短子数组长度
- [算法]需要排序的最短子数组长度
- 数组与矩阵---需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组长度
- 需要排序的最短子数组的长度
- 待排序的最短子数组长度(C++版)
- 需要排序的最短子数组
- 算法--求需要排序的最短子数组问题
- 【算法题】重新排序的最短子数组
- 对字符串数组中的M个字符串按长度由小到大进行排序
- 未排序正数数组中累加和为给定值的最长子数组长度
- 集合相等问题(java sort排序数组长度问题)
- 假设数组中有一个数字出现的次数超过了数组长度的一半,试编程找出这个数字(消除 qosrt 快速排序 哈希)
- 一维数组的长度和排序