算法系列——扑克牌中的顺子(剑指offer)
Posted BridgeGeorge
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——扑克牌中的顺子(剑指offer)相关的知识,希望对你有一定的参考价值。
题目
从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof
思路
使用set判断 重复,如果重复直接返回,反之记录最大最小值
最大最小值之差小于5则为顺子
代码
class Solution
public boolean isStraight(int[] nums)
int max = 0;
int min = 14;
Set<Integer> set = new HashSet<>();
for(int i = 0; i<nums.length; i++)
if(nums[i]==0)
continue;
if(set.contains(nums[i]))
return false;
set.add(nums[i]);
max = Math.max(max,nums[i]);
min = Math.min(min,nums[i]);
return max-min<5;
以上是关于算法系列——扑克牌中的顺子(剑指offer)的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#剑指 Offer 61. 扑克牌中的顺子
剑指 Offer 45. 把数组排成最小的数 剑指 Offer 61. 扑克牌中的顺子 剑指 Offer 40. 最小的k个数