Array:给定一个整数数组,找出索引m、n,只要将m和n之间的元素排好序,整个数组就是有序的

eg:1,2,4,7,10,11,7,12,6,7,16,18,19 索引是3、9 返回值是7

public static int getMinLength(int[] arr) {
        if (arr==null|| arr.length<2) {
            return 0;
        }
        int min = arr[arr.length-1];
        int noMinIndex = -1;
        for (int i = arr.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 < arr.length; i++) {
            if (arr[i]<max) {
                noMaxIndex = i;
            } else {
                max = Math.max(max, arr[i]);
            }
        }
        return noMaxIndex-noMinIndex+1;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容