博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【刷算法】扑克牌顺子
阅读量:5940 次
发布时间:2019-06-19

本文共 1453 字,大约阅读时间需要 4 分钟。

题目描述

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可以被替换为任意数字。

例如:
[0,0,1,2,3]可以看做[1,2,3,4,5]
[0,1,3,4,5]可以看做[1,2,3,4,5]
但是类似于[0,1,4,5,6]就不行,因为4和1之间需要两个数字来补,但是只有一个0,所以不能构成顺子。
所以总结一下:

  1. 序列中有相同的数字,即对子的出现,则返回false
  2. 如果出现了n个0,说明可以由n个数字可以被补上,这个时候需要检查整个序列需要几个数字来补,记为m,如果m大于n,则返回false,否则返回true。例如:
    数组[0,0,2,4,7],遍历序列后需要(4-2-1)+(7-4-1)=3个数字来补,但是0的个数是2,所以补不够,返回false

代码实现

function IsContinuous(numbers){    if(numbers === null || numbers.length !== 5)            return false;        numbers.sort(function(a,b) {        return a-b;    })        var count = 0;    // 有几个王    var distance = 0;    // 差值    if(numbers[3] === 0)        return true;    else if(numbers[2] === 0)        count = 3;    else if(numbers[1] === 0)        count = 2;    else if(numbers[0] === 0)        count = 1;        for(var i = count;i < numbers.length-1;i++) {        if(numbers[i+1] - numbers[i] === 0)            return false;        else if(numbers[i+1] - numbers[i] === 1)            continue;        else             distance = distance + numbers[i+1] - numbers[i] - 1;    }        if(distance > count)        return false;    else         return true;}

转载地址:http://ncqtx.baihongyu.com/

你可能感兴趣的文章
博客正在搬迁中
查看>>
触发器与存储过程的区别
查看>>
我的友情链接
查看>>
centos搭建supervisor
查看>>
linux日志分割
查看>>
Samba再报安全漏洞
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Spring学习资料之 依赖注入(一)
查看>>
安装win7提示安装程序无法创建新的系统分区和定位现有系统分区
查看>>
快递查询接口的调用与解析案例
查看>>
我的友情链接
查看>>
服务器性能优化配置建议
查看>>
oracle sql语句实现累加、累减、累乘、累除
查看>>
SCNetworkReachabilityRef监测网络状态
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
接口由40秒到200ms优化记录
查看>>
java 视频播放 多人及时弹幕技术 代码生成器 websocket springmvc mybatis SSM
查看>>
Activiti6.0,spring5,SSM,工作流引擎,OA
查看>>
第十三章:SpringCloud Config Client的配置
查看>>