面试题44 扑克牌的顺子

题目链接:扑克牌的顺子

思路总结

1.排序
2.统计0个数 为a
3.统计不连续数的差 将其求和为b
4.如果不存在对子,且a=b,则为顺子

class Solution {
public:
    bool IsContinuous( vector<int> numbers ) {
        int length= numbers.size();
        //1.跳出函数
        if(length<1){
            return false;
        }
        //2.排序
        sort(numbers.begin(),numbers.end());
        
        //3.声明变量计算0个数
        int numberOfzero = 0;
        //4.声明变量计算不连续数间隔
        int numberOfgap = 0;
        //5.统计数组中0个数
        for(int i = 0;i<length&&numbers[i]==0;i++){
            ++numberOfzero;
        }
        //6.统计数组中间隔个数
        int small = numberOfzero;
        int big = small+1;
        while(big<length){
            //a.是否有对子
            if(numbers[small] == numbers[big]){
                return false;
            }
            numberOfgap += numbers[big]-numbers[small]-1;
            small = big;
            ++big;
        }
        return (numberOfgap>numberOfzero)?false:true;
    }
    int compare(const void *arg1,const void *arg2){
        return *(int*)arg1-*(int*)arg2;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目:从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续的。大小王可以看成任意数字 解法分析:问题...
    qmss阅读 397评论 0 0
  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 3,394评论 0 19
  • 教你如何迅速秒杀掉:99%的海量数据处理面试题 本文经过大量细致的优化后,收录于我的新书《编程之法》第六章中,新书...
    Helen_Cat阅读 7,471评论 1 39
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,237评论 0 52
  • 企业都会面临三个周期,不同的周期用不同的战略,员工都要积极面对。转型期是企业的困难时期,企业的所有人都要不断克服困...
    耿婷婷GTT阅读 203评论 0 0