从33个数中随机取出几个数,然后进行排序,判断这一组数是否有连续的.
如 1 2 5 7 8 9 这里边有两组连续的分别为 1 2 和7 8 9 前者我们称之为两连续
后边的7 8 9为三连续,最后返回最大的那个 也就是说返回3就行了 请大家帮帮忙 

解决方案 »

  1.   

    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;class Test {
    public static void main(String[] args) {
    Integer[] num=new Integer[15];
    Set<Integer> s=new HashSet<Integer>();
    while(s.size()<15){
    s.add((int)(Math.random()*33));
    }
    num=s.toArray(num);
    Arrays.sort(num);
    System.out.println(Arrays.toString(num));
    int max=0;
    int count=1;
    for(int i=1;i<num.length;i++){
    if(num[i]-num[i-1]==1){
    count++;
    }else if(count>max){
    max=count;
    count=1;
    }else{
    count=1;
    }
    }
    System.out.println(max);
    }
    }
      

  2.   


    private static int getMaxContinuousNum(int[] a) {
    Arrays.sort(a);
    int tempCount = 1;
    int max=0;
    System.out.println(Arrays.toString(a));
    for (int i = 0; i < a.length - 1; i++) {
    if (a[i + 1] - a[i] == 1) {
    tempCount++;
    } else {
    if(tempCount>max){
    max=tempCount;
    tempCount=1;
    }
    else{
    tempCount=1;
    }
    }
    }
    if(tempCount>max){
    max=tempCount;
    }
    return max;
    }
      

  3.   

    楼上的有点小疏忽,若一个数组可以连到最后,你的程序运行的结果就不对了。
    如int num[]={1,2,4,5,6};