zoukankan      html  css  js  c++  java
  • 剑指offer---扑克牌顺子

    题目:扑克牌顺子

    要求:从扑克牌中抽出5张牌,其中大小王可以代表任意牌,A代表1,J代表11, Q代表12, K代表13,判断抽出的五张牌是不是顺子,如 4 6 8 0 0 是顺子,返回true

    技巧: 如果五张牌里面含有四个以上(含四个)大小王,那就一定是顺子, 如 3 0 0 0 0

    class Solution {
    public:
        bool IsContinuous( vector<int> numbers ) {
            
        }
    };

    解题代码:

    class Solution {
    public:
        static bool cmp(int a,int b){
            return a < b;
        }
    
        bool IsContinuous(vector<int> numbers) {
            if(numbers.size() != 5)
                return false;
            // 对numbers进行排序
            sort(numbers.begin(), numbers.end(), cmp);
            int numOfZero = 0;
            int numOfBlank = 0;
            // 统计0的个数
            for(int i = 0; i < numbers.size(); i++){
                if(numbers[i] == 0)
                    numOfZero++;
            }
            if(numOfZero == 4 || numOfZero == 5)
                return true;
    
            // 统计空缺的个数
            for(int i = numOfZero; i < numbers.size()-1; i++){
                int temp = numbers[i+1] - numbers[i];
                if(temp != 1)
                    numOfBlank  = numOfBlank + temp - 1;
            }
            return numOfZero == numOfBlank;
        }
    };
  • 相关阅读:
    Diameter 消息格式解析
    我们活成了不想的样子
    《活着》片段
    我的庚子年
    <<甄嬛传>>后感
    对于根目录磁盘满的了问题
    phpstorm注册账号
    mac安装nginx
    samba文件共享及账户映射
    我们的读书会
  • 原文地址:https://www.cnblogs.com/iwangzhengchao/p/9959090.html
Copyright © 2011-2022 走看看