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;
        }
    };
  • 相关阅读:
    如何用vue做计算器功能
    js反弹运动
    $.each的使用
    js文字滚动事件
    根据服务器时间,计算出时间轴的倒计时。
    时间格式转时间戳的几种方法
    匀速运动升级
    js匀速运动
    js图片滚动无缝衔接
    webFrame
  • 原文地址:https://www.cnblogs.com/iwangzhengchao/p/9959090.html
Copyright © 2011-2022 走看看