其他分享
首页 > 其他分享> > 数据结构-荷兰国旗问题

数据结构-荷兰国旗问题

作者:互联网

/*
    * 与最右边的数比较,
    * 小于的放在左边
    * 大于的放在右边
    * 等于的放在中间
    */
    public static int[] netherlandsFlag(int[] arr, int L, int R){
        if(L>R){
            return new int[]{-1,-1};
        }

        if(L == R){
            return new int[]{L,R};
        }

        int less = L-1;
        int more = R;
        int index = L;
        while(index<more){
            if(arr[index] == arr[R]){
                index++;
            }else if(arr[index] < arr[R]){
                swap(arr,++less,index++);
            }else if(arr[index] > arr[R]){
                swap(arr,--more,index);
            }
        }

        swap(arr,R,more);
        return new int[]{less+1,more};
    }

 

标签:index,国旗,return,int,arr,荷兰,new,数据结构,more
来源: https://blog.csdn.net/m0_37564426/article/details/115559257