解决方案 »

  1.   

    根据你这需求自己调试写了一个,参考下吧!
    public static List<Integer> delContinousNum(Integer[] orgin) {
    if (orgin == null || orgin.length == 0) 
    {
    return new ArrayList<Integer>();
    }

    Integer[] tmp = orgin.clone();
    Arrays.sort(tmp, Collections.reverseOrder());
    if (tmp.length == 1 || tmp.length == 2) 
    {
    return Arrays.asList(tmp);
    }

    List<Integer> r = new ArrayList<Integer>(tmp.length);
    int start = 0;
    for (int i = 0; i < tmp.length - 1; i ++) 
    {
    if (tmp[i].intValue() == tmp[i + 1].intValue() + 1 || tmp[i].intValue() == tmp[i + 1].intValue()) 
    {
    if (i > 0 && tmp[i].intValue() != tmp[i-1].intValue() - 1 && tmp[i].intValue() != tmp[i-1].intValue()) 
    {
    start = i;
    }
    continue;
    }else 
    {
    if (start == i) {
    r.add(tmp[i]);
    } else
    {
    r.add(tmp[start]);
    r.add(tmp[i]);
    }
    start = i + 1;
    }
    }
    if (start != tmp.length - 1) 
    {
    r.add(tmp[start]);
    }
    r.add(tmp[tmp.length - 1]);

    return r;
    }

    }