题解 | #扑克牌顺子#

扑克牌顺子

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

C语言解扑克牌顺子

解题思路

比如说有五个数1 3 2 4 5,什么情况下能组成顺子呢?首先顺子肯定是牌型不重复(先不考虑0)!既然牌型不可能重复,也就是最大值,最小值差值在5以内。所以梳理一下顺子的充要条件:1.(除0)数字不重复,2.最大值最小值小于5。

 * 
 * @param numbers int整型一维数组 
 * @param numbersLen int numbers数组长度
 * @return bool布尔型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int IsContinuous(int* numbers, int numbersLen ) {
    int hash[13]={0};//一个hash表
    int min=13;
    int max=0;
    for(int i=0;i<numbersLen;i++){
        //获取最小值
        if(numbers[i]==0)
            continue;
        if(numbers[i]<min)
            min=numbers[i];
        if(numbers[i]>max)
            max=numbers[i];
            //判断是否重复
        if(hash[numbers[i]]==1)
            return 0;
            //存入hash表
        hash[numbers[i]]=1;
    }
    if(max-min>=5)
        return 0;
    else
        return 1;
}
全部评论

相关推荐

04-11 23:51
门头沟学院 Java
坚定的芭乐反对画饼_许愿Offer版:人人都能过要面试干嘛,发个美团问卷填一下,明天来上班不就好了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务