1、抽取的数组个数必须是5个,如果数组个数达不到要求:false!
2、利用Arrays对数组排序以后,就好办了,所以对于sort函数不能陌生。
3、数组中有重复的:false,这里利用了桶计数的方法
4、数组排序后,相邻数之间的差值大于了0的个数,那这个数组就没法凑成顺子了:false
5、0的个数就是4个,多了也不对:false。

剩下的就是对的了

import java.lang.*;
import java.util.*;
public class Solution {
    public boolean IsContinuous(int [] numbers) {
        int len = numbers.length;
        if(len != 5) return false;
        int count_zero = 0;
        int gap = 0;
        int[] cur = new int[14];
        Arrays.sort(numbers);
        for(int i = 0;i < len ;i++){
            if(numbers[i] == 0){
                count_zero++;
            }else{
                if(cur[numbers[i]] != 0){
                    return false;
                }//有重复的牌就不是顺子
                    cur[numbers[i]] = 1;
                if( i!= 0 && numbers[i-1] != 0){
                    gap += numbers[i] - numbers[i-1] - 1;
                }
            }
        }
        if(count_zero == 5 || count_zero < gap) return false;//王的个数补不上牌与牌之间的差值
        return true;
    }
}