使用大小王作为修补不符合要求的工具

扑克牌顺子

http://www.nowcoder.com/questionTerminal/762836f4d43d43ca9deb273b3de8e1f4

排序,然后求出大小王的个数,即0的个数。while(nums[count]==0) count++;

记录相邻元素的差异,然后用coun去修改:count-=(diff-1),符合要求的是diff=1.

当diff=0或者count<0(表示大小王已经用完!)

    /**
     * 扑克牌顺序
     * @param numbers 扑克牌
     * @return 牌是否能够组成顺子
     */
    public boolean isContinuous(int [] numbers) {
        if(numbers==null||numbers.length==0){
            return false;
        }
        int numsOfQueue=0;
        Arrays.sort(numbers);
        while (numbers[numsOfQueue]==0){
            numsOfQueue++;
        }
        int i=numsOfQueue+1;//左边第2个不为0的元素。
        for(int j=i;j<5;j++){
            int diff=numbers[j]-numbers[j-1];
            numsOfQueue-=(diff-1);//修改
            if(numsOfQueue<0||diff==0){
                return false;
            }
        }
        return true;

    }

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务