JAVA练习110-扑克牌中的顺子

从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
示例 1: 输入: [1,2,3,4,5] 输出: True
示例 2: 输入: [0,0,1,2,5] 输出: True
限制:
数组长度为 5 数组的数取值为 [0, 13] 
分析:
方法1:排序
因为五张牌是连续的且只相差 1,不考虑大小王的情况下,最大牌和最小牌的差一定为 4,因为大小王也可以替补最大牌或最小牌,所以有大小王时,最大牌与最小牌的差一定小于等于4,即小于 5。因此我们可以对数组进行排序,记录最大值和最小值,0 跳过,然后判断两值之差是否小于 5 即可。注意:有重复的牌(除大小王)不算顺子。
时间复杂度:O(n*log n)        n 等于 5 空间复杂度:O(n) 
class Solution {
public boolean isStraight(int[] nums) {
/

JAVA练习110-扑克牌中的顺子最先出现在Python成神之路

版权声明:
作者:玉兰
链接:https://www.techfm.club/p/17873.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>