题解 | #牛牛的和平年代#
牛牛的和平年代
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; } }