美文网首页
面试题61:扑克牌中的顺子

面试题61:扑克牌中的顺子

作者: 潘雪雯 | 来源:发表于2020-05-07 10:48 被阅读0次

    题目

    从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字

    解题思路

    1. 把数组排序
      2)统计数组中0的个数
    2. 统计排序后数组中相邻数字之间的空缺总数。若空缺总数≤0的个数,那么这个数组是连续的,反之不是连续的
    3. 若数组中国非0数字重复出现,则该数组不是连续的。

    代码

    class Solution{
      public:
        bool isContinuous(int *number,int length)
        {
            for(int i = 0;i<length;i++)
            {
                for(int j = length-1;j>i;j--)
                {
                    if(number[i]>number[j])
                    {
                        int temp = number[i];
                        number[i]=number[j];
                        number[j]=temp;
                    }
                }
            }
            
            int zero_sum = 0;
            int empty_sum = 0;
            for(int i =0;i<length-1;i++)
            {
                if(number[i] == 0)
                {
                    zero_sum++;
                }
                else if((number[i]+1) != number[i+1] )
                {
                    empty_sum++;
                }
            }
            // return zero<empty?0:1;
            if(zero_sum >= empty_sum)
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
    };
    

    完整代码Github

    相关文章

      网友评论

          本文标题:面试题61:扑克牌中的顺子

          本文链接:https://www.haomeiwen.com/subject/vzsoghtx.html