题解 | #牛牛的和平年代#

牛牛的和平年代

http://www.nowcoder.com/practice/f60ad5b5594f4ad2ae1ee35d6e9e8f11

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 检查数组的每个前缀是不是一个好的集合
     * @param mSet int整型一维数组 
     * @return bool布尔型一维数组
     */
       public boolean[] continuousSet (int[] mSet) {
        // write code here
        boolean[] result = new boolean[mSet.length];
        int index = 0;

        for (int i = 0; i < mSet.length; i++){
            quickSort(mSet,0,i);//对前i+1个数进行排序

            index = 0;
            for (int j = 1; j < i+1; j++){
                if (mSet[j] - mSet[j-1] != 1 && mSet[j] != mSet[j-1]){//判断是否连续
                    result[i] = false;
                    index = 1;
                }
            }

            if (index == 0){
                result[i] = true;
            }
        }

        return result;
    }

    private void quickSort(int[] mSet, int start, int end){
        if (start >= end){
            return;
        }

        int i = start;
        int j = end;
        int tmp = mSet[start];

        while (i < j){
            while (i < j && mSet[j] > tmp){
                j--;
            }

            while (i < j && mSet[i] <= tmp){
                i++;
            }

            exchange(mSet, i, j);
        }

        exchange(mSet, i, start);
        quickSort(mSet, start, i-1);
        quickSort(mSet, i+1, end);
    }

    private void exchange(int[] mSet, int i, int j) {
        int tmp = mSet[i];
        mSet[i] = mSet[j];
        mSet[j] = tmp;
    }
}
全部评论

相关推荐

11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务