题解 | #扑克牌顺子#

扑克牌顺子

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;
}
全部评论

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务