题解 | #扑克牌顺子#

扑克牌顺子

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

1.由于大小王可以做任意数,所以需要统计五张牌牌中大小王的个数以及最大值与最小值;
2.分情况讨论:
a.没有0的情况下,且最大值-最小值 == 4,一定是顺子;
b.4张全是0的情况下,一定是顺子;
c.其他情况,最大值-最小值的值区间=[1,4];
public boolean IsContinuous(int [] numbers) {

    //数组5个元素中,最大值与最小值之间的差为4
    int min = numbers[0];
    int max = 0;
    int count = 0;
    for(int i = 0; i < numbers.length; i++){
        max = Math.max(max,numbers[i]);
        if(numbers[i] != 0){
            if(min == 0){
                min = numbers[i];
            }
            if(min > numbers[i]){
                min = numbers[i];
            }
        }else count++;
    }
    if(count == 0 && max - min != 4){
        return false;
    }else if(count == 4){
        return true;
    }
    if(max - min <= 4 && max - min >= 1){
        return true;
    }
    return false;
}
全部评论

相关推荐

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