码迷,mamicode.com
首页 > 其他好文 > 详细

【剑指offer】61、扑克牌中的顺子

时间:2018-07-22 23:41:47      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:style   length   扑克牌   一个   思路   tor   color   numbers   tin   

题目

从扑克牌中随机抽5张牌,判断是不是一个顺子。2~10为本身,A是1,J,Q,K分别是11,12,13。大小王百搭

思路

关键就是大小王百搭。把大小王都当作0。

我们先统计出数组中0的个数

然后将数组排序,统计不连续的空缺总数

最后判断0的个数是否比空缺总数大

class Solution {
public:
    bool IsContinuous( vector<int> numbers ) {
        if (numbers.size() != 5 )
            return false;
        int length = numbers.size();
        sort(numbers.begin(), numbers.end());
        int num_space = 0, num_zero = 0;
        for (int i = 0; i < length; i++)
        {
            if (numbers[i] == 0)
                num_zero++;
        }
        for (int i = num_zero; i < length - 1; i++)
        {
            if (numbers[i+1] == numbers[i])   
                return false;
            // 统计空缺总数,如果是连续的,则为0
            num_space += numbers[i+1] - numbers[i] - 1;
        }
        
        return (num_space > num_zero)?false:true;
    }

 

【剑指offer】61、扑克牌中的顺子

标签:style   length   扑克牌   一个   思路   tor   color   numbers   tin   

原文地址:https://www.cnblogs.com/shiganquan/p/9351713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!