剑指 Offer 61:扑克牌中的顺子

简介: 剑指 Offer 61:扑克牌中的顺子

题目

题目链接

从若干副扑克牌中随机抽 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

解题

方法一:顺序遍历,记录最大值、最小值、set记录重复

参考链接

此题限定是5张牌

判断顺子充分条件:

  • 除大王小王外,所有牌无重复
  • 设此 55 张牌中最大的牌为 max ,最小的牌为 min(大小王除外),则需满足:max-min<5

因此,使用maxNum、minNum分别记录出现最大最小值(大小王除外),用set记录牌是否重复。

class Solution {
public:
    bool isStraight(vector<int>& nums) {
        int maxNum=INT_MIN;
        int minNum=INT_MAX;
        unordered_set<int> set;
        for(int num:nums){
            if(num){
                maxNum=max(maxNum,num);
                minNum=min(minNum,num);
                if(set.count(num)) return false;
                set.insert(num);
            }
        }
        return maxNum-minNum<5;
    }
};
相关文章
|
算法
【学会动态规划】剑指 Offer II 091. 粉刷房子(14)
【学会动态规划】剑指 Offer II 091. 粉刷房子(14)
47 0
|
18天前
lanqiao OJ 98 包子凑数
lanqiao OJ 98 包子凑数
8 0
|
22天前
Leetcode第十八题(四数之和)
这篇博客介绍了LeetCode第18题“四数之和”的解法,通过排序和双指针技术来找出数组中所有和为特定值的四个不同元素的组合。
10 0
|
5月前
|
机器学习/深度学习
【洛谷 P1271】【深基9.例1】选举学生会 题解(计数排序)
**深基9.例1**选举学生会,使用计数排序解决。给定$n$(≤999)候选人和$m$(≤2000000)选票,需按投票数排序选票。输入含$n$,$m$及$m$个候选人编号;输出排序后编号。示例:5名候选人,10张选票,输出`1 2 2 2 2 2 2 2 5 5`。代码:用数组记录每个候选人得票数,遍历数组打印每个候选人按票数的编号。
31 0
|
机器学习/深度学习 Cloud Native
【刷题日记】剑指 Offer II 083. 没有重复元素集合的全排列
本次刷题日记的第 35 篇,力扣题为:剑指 Offer II 083. 没有重复元素集合的全排列 ,中等
|
6月前
剑指 Offer 14- I:剪绳子
剑指 Offer 14- I:剪绳子
37 0
|
6月前
剑指 Offer 14- II:剪绳子 II
剑指 Offer 14- II:剪绳子 II
31 0
|
6月前
剑指 Offer 60:n个骰子的点数
剑指 Offer 60:n个骰子的点数
40 0
|
12月前
leetcode每日一题 2021/4/10 263. 丑数
leetcode每日一题 2021/4/10 263. 丑数
45 0
|
存储 测试技术
LeetCode 周赛 352(2023/07/02)一场关于子数组的专题周赛
往期回顾:[LeetCode 单周赛第 350 场 · 滑动窗口与离散化模板题](https://mp.weixin.qq.com/s/7_neqKFSRMANFTxtVj64gA)
42 0
LeetCode 周赛 352(2023/07/02)一场关于子数组的专题周赛