LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”。LL决定去买体育彩票啦。 现在,要求你使用这幅牌模拟上面的过程,然后告诉我们LL的运气如何, 如果牌能组成顺子就输出true,否则就输出false。为了方便起见,你可以认为大小王是0


思路:

这道题的主要要求是给定一组牌,在有0这个癞子的情况下,是否是顺子!!!

千万不要理解成,随即抽取一组牌,为让我们求LL能抽到顺子的概率!

因此:我们可以对给定的牌进行从大到小的顺序进行排序

排序完成之后遍历查找0元素的个数,以及累计非零元素之间的间隔数!

也即是看看癞子(0)的个数能不能抵掉这些间隔!

还有一种情况必须考虑!就是当有对子出现的时候,那么这个序列一定不可能是顺子!遇到这种情况,应当立即返回false!


思路清晰了,代码就简单啦!代码如下

class Solution {
public:bool IsContinuous( vector<int> numbers ) {int len = numbers.size();if(len == 0) return false;int numberofzero = 0;//0的个数;int numberofgap = 0;//间隔的个数,单位为1;sort(numbers.begin(),numbers.end());  //从小到大排序;for(int i = 0;i<len-1;++i){if(numbers[i] == 0){numberofzero++;//找出中共有多少个0;continue;}if(numbers[i] == numbers[i+1])return false;numberofgap += numbers[i+1]-numbers[i]-1;  //找出总共有多少个间隔}if(numberofzero >= numberofgap)//比较0的个数和间隔的个数!return true;return false;}
};  

剑指offer:扑克牌的顺子问题相关推荐

  1. 剑指offer 扑克牌的顺子

    题目:随机抽取扑克牌几张牌,判断能否组成顺子.其中大小王可以随便配. 题目可以抽象为: 判断一个整形数组是否为连续数组,其中 0可以随便配. 思路:将大小王抽象为0(当然其他数字也可以哦),先对数组排 ...

  2. 【LeetCode】剑指 Offer 61. 扑克牌中的顺子

    [LeetCode]剑指 Offer 61. 扑克牌中的顺子 文章目录 [LeetCode]剑指 Offer 61. 扑克牌中的顺子 一.集合Set + 遍历 二.排序 + 遍历 总结 解题思路 根据 ...

  3. 剑指offer——面试题44:扑克牌顺子

    剑指offer--面试题44:扑克牌顺子 Solution1: 20180907重做 书上的思路. class Solution { public:bool IsContinuous(vector&l ...

  4. 【剑指Offer】个人学习笔记_61_扑克牌中的顺子

    目录 题目: [剑指 Offer 61. 扑克牌中的顺子](https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof/) 题目分 ...

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

    剑指Offer面试题 44:扑克牌的顺子 从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的. 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王 ...

  6. 剑指offer第二版答案详细版(带详细解题思路)

    1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...

  7. 【剑指Offer学习】【全部面试题汇总】

    剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...

  8. 剑指offer和LeetCode题目笔记

    目录 剑指offer 一.数组 1. 数组中重复的数字 2.二维数组中的查找 多个if和if,elseif语句的区别 3.旋转数组的最小数字 4.构建乘积数组 5.把数组排成最小的数 6.矩阵中的路径 ...

  9. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...

  10. 剑指offer之题解目录(全)

    剑指offer之题解目录(全) 3. 从尾到头打印链表 4. 重建二叉树 5. 用两个栈实现队列 6. 旋转数组的最小数字 7. 斐波那契数列 8. 跳台阶 9. 变态跳台阶 10. 矩阵覆盖 11. ...

最新文章

  1. 数理统计-5.1 总体与样本
  2. html 常见hack,针对主流浏览器的CSS-HACK写法及IE常用条件注释
  3. 计算机组成原理--数据的表示及其运算和运算器(附考研题目)
  4. 思科nat配置实例_Cisco ASA 5520(8.2.4)配置企业内网案例
  5. codeigniter + Ajax (亲测)
  6. 更新k8s镜像版本的三种方式
  7. 使用pymongo需要手动关闭MongoDB Connection吗?
  8. 《程序设计导引及在线实践》开始
  9. 太完整了!塞班java软件下载
  10. linux下搭建radius服务器,linux搭建freeradius服务器
  11. 解决 Refused to display in a frame because it set 'X-Frame-Options' to 'deny'.问题
  12. dropbox 怎么使用_使用Dropbox API构建自己的Dropbox客户端
  13. 根据四个点坐标排列出左上右上右下左下位置关系
  14. 西部世界分析:人民网点名IPFS 分布式存储打开千亿级市场
  15. 360度全景VR摄像机初探
  16. 采蘑菇电脑c语言,英菲尼迪终于升级英菲尼迪Q50L,内行人告诉你怎么选还配备主动降噪、胎压显示!凯美瑞都比不上它! 早买早享受...
  17. linux 系统命令被后门修改_Linux、Windows权限维持常用后门学习总结
  18. 计算机专业912,备战2019清华计算机912考研系列笔记绪论
  19. Apple Pay入门
  20. 『高可用短链服务』基于.NET开源项目SuperShortLink打造稳定可靠的短链转换系统

热门文章

  1. Maven中如何禁止插件(plugin)在子模块(module)上执行
  2. 关于DataGridView的数据源绑定字符串两个值得注意的问题
  3. CVX约束中定义中间变量或表达式
  4. Oracle数据库的一些常用命令
  5. 史上最详细、最完全的ipython使用教程,Python使用者必备!
  6. linux线程同步(4)-自旋锁
  7. 重定向index.php,使用htaccess将all重定向到index.php
  8. little problem
  9. Linux电源管理(10)_autosleep
  10. 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(五)客户端介绍