美文网首页算法
面试题 16.16. 部分排序

面试题 16.16. 部分排序

作者: crazyfox | 来源:发表于2021-09-09 12:28 被阅读0次

    https://leetcode-cn.com/problems/sub-sort-lcci/
    思路:
    从左往右遍历,寻找当前遍历过的数中最大的值,并与当前值比较,如果当前值小于最大值,记录当前值的位置r,
    从右往左遍历,寻找当前遍历过的数中最小的值,并与当前值比较,如果当前值大于最小值,记录当前值的位置l,
    最后返回{l,r}

    class Solution {
        public int[] subSort(int[] array) {
            if(array.length==0)return new int[] {-1,-1};
            int max = array[0];
            int index = 0;
            int r = -1;
            while(index<array.length){
                max = Math.max(max,array[index]);
                if(array[index]<max){
                    r=index;
                }
                index++;
            }
            int min = array[array.length-1];
            index = array.length-1;
            int l = -1;
            while(index>=0){
                min = Math.min(min,array[index]);
                if(array[index]>min){
                    l=index;
                }
                index--;
            }
            return new int[] {l,r};
        }
    }
    

    相关文章

      网友评论

        本文标题:面试题 16.16. 部分排序

        本文链接:https://www.haomeiwen.com/subject/wfpiwltx.html