[剑指offer]扑克牌中的顺子
程序员文章站
2022-06-17 16:55:03
...
[剑指offer]扑克牌中的顺子
题目描述
从扑克牌中随机抽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] .
解题思路
根据题意,此 5 张牌是顺子的 充分条件 如下:
- 除大小王外,所有牌 无重复 ;
- 设此 5 张牌中最大的牌为 max ,最小的牌为 min (大小王除外),则需满足:
实现代码
class Solution {
public:
bool isStraight(vector<int>& nums) {
sort(nums.begin(),nums.end());//排序
int max=nums[4];
int count=0;
for(int i=0;i<nums.size()-1;i++){
if(nums[i]==0)
count++;//记录0的数目
else if(nums[i]==nums[i+1])//判断无重复
return false;
}
int min=nums[count];
if(max-min<5)
return true;
return false;
}
};
上一篇: Restful 示例
下一篇: [转]JVM监控工具
推荐阅读
-
剑指offer25:复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),结果返回复制后复杂链表的head。
-
剑指offer31:整数中1出现的次数(从1到n整数中1出现的次数)
-
剑指offer28:找出数组中超过一半的数字。
-
剑指offer27:按字典序打印出该字符串中字符的所有排列
-
C#版剑指Offer-001二维数组中的查找
-
剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
-
剑指offer JZ31 整数中1出现的次数 Python 解
-
剑指offer JZ54 字符流中第一个不重复的字符 Python 多解
-
[算法练习-剑指offer]题18.二叉树的镜像(Java)
-
剑指Offer积累-JZ1-二维数组中的查找