java判断扑克牌是否为顺子_程序算法设计题,判断扑克牌中的顺子

相信很多人都玩过扑克牌。在扑克牌中,有许许多多的算法供我们学习。仅仅一个斗地主游戏,就可以学习很多的算法。今天和大家分享一个判断扑克牌中的顺子的问题。

b69115a1e5a456e2116d1bbfffcfe2e3.png

题目:

从扑克牌中随机抽取五张牌,判断是不是一个顺子。其中A为1,J为11,Q为12,K为13,大小王可以看成任意数字(即籁子)。

题目分析:

首先我们来抽象一下这个题目。首先,我们可以把大小王看成是0,五张牌看成由5个数字组成的数组。判断这五张牌是不是连续的,最直观的方式就是对数组进行排序。由于0可以当成是任意数字,我们可以用0去补满数组中的空缺。如果排序之后的数组不是连续的,即相邻数字相隔若干个数字,那么我们只要有足够的0可以补满这两个数字之间的空缺,这个数组实际上就是连续的。

于是,我们需要做三件事:首先数组排序;其次统计数组中的0的个数;最后统计排序之后的数组中相邻数字之间的空缺总数。如果空缺总数小于或者等于0的个数,那么这个数组就是连续的,反之则不连续。

我们还要注意一点:如果数组中非0数字重复出现,那么这个数组就是不连续的,可以直接返回结果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值