剑指Offer编程题--扑克牌顺子

编程题:扑克牌顺子 题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为1... 阅读详情

题目链接:扑克牌顺子

题意:

 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”。LL决定去买体育彩票啦。 现在,要求你使用这幅牌模拟上面的过程,然后告诉我们LL的运气如何, 如果牌能组成顺子就输出true,否则就输出false。为了方便起见,你可以认为大小王是0。

解题思路:

   1.如果出现重复,则不可能成立

   2.如果最大和最小相差 小于 5才能成立

class Solution {
public:
    bool IsContinuous( vector<int> numbers ) {
        int n = numbers.size();
        if(n != 5){
            return false;
        }
        vector<int> a(14);
        int  minn = 14, maxn = -1;
        for(int i = 0; i < 5; i++){
            if(numbers[i] == 0){
                continue;
            }
            a[numbers[i]]++;
            if(a[numbers[i]] > 1){ // 出现重复
                return false;
            }
            if(maxn < numbers[i]){
                maxn = numbers[i];
            }
            if(minn > numbers[i]){
                minn = numbers[i];
            }
        }
        if(maxn - minn < 5){  // 最大和最小相差小于 5
            return true;
        }
        return false;
    }
};

 

斗地主之顺子 注意!答案仅作为参考(实际考试中下列代码通过用例100%,但不代表最优解) 在斗地主扑克牌游戏中, 扑克牌由小到大的顺序为:3,4,5,6,7,8,9,10,J,Q,K,A,2,玩家可以出的扑克牌阵型有:单张、对子、顺子、飞机、炸弹等。 其中顺子的出牌规则为:由至少5张由小到大连续递增的扑克牌组成,且不能包含2。 例如:{3,4,5,6,7}、{3,4,5,6,7,8,9,10,J,Q,K,A}都是有效的顺子;而{J,Q,K,A,2}、 {2,3,4,5,6}、{3,4,5,6}、{3,4,5,6,8}等都 阅读详情

相关推荐

智驾系统分层架构:从传感器到执行器的全链路解析

本文深入解析了智能驾驶系统的分层架构,从传感器数据采集融合、应用层决策到车辆管理层执行,完整呈现了从感知到控制的全链路工作流程。文章重点阐述了架构设计的核心优势在于接口标准化与模块解耦,以ACC和LKA协同场景为例,说明了各层级如何通过清晰分工与高效协作,实现复杂系统的可靠、灵活与易于升级。

weixin_29219189的博客 399

C/C++编程题刷题:leettcode 剑指 Offer 61. 扑克牌中的顺子

剑指 Offer 61. 扑克牌中的顺子 难度简单55 从扑克牌中随机抽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 class Solution { public: bool isStraight(vector<int>..

Emotion的博客 652

断点回归(regression discontinuity design)学习笔记

本篇博文主要是对断点回归的一些学习和总结~ 学习材料如下: 1 断点回归设计RDD分类与操作案例 2 RDD断点回归, Stata程序百科全书式的宝典 3 断点回归设计的前沿研究现状, RDD 4 让“跳跃”更有意义:断点回归设计(RDD) 5 Stata: 断点回归 (RDD) 教程 6 怎么用通俗的语言解释断点回归?它与DID的区别是什么 7 Watering Down Environmental Regulation in China,Guojun He, Shaoda Wang, Bing Zhan

Claire_chen_jia的博客 9万+

LeetCode算法解析之“扑克牌顺子”问题

题目描述: 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 解题思路: 根据题意,此 55 张牌是顺子的 充分条件 如下: 因而,可将问题转化为:此 55 张牌是否满足以上两个条件? 解法如下: 先对数组执行排序。 判别重复: 排序数组中的相同元素位置相邻,因此可通过遍历数组,判断 nums[i] = nums[i +1]nums[i]=nums[i

m0_46405589的博客 1146

P1003 [NOIP2011 提高组] 铺地毯 python题解

解题思路: 1、根据题意,所有地毯都是挨着铺的,所以最上面的一条符合题意的一定是从后往前数的第一条符合题意的。 2、符合题意要求x和y同时满足大于等于地毯左边坐标并且小于等于地毯右边坐标。 代码如下: n = int(input()) a = [] for i in range(n): a.append(list(map(int,input().split()))) x,y = list(map(int,input().split())) l = len(a) while l > 0: ..

繁华三千东流水不舍昼夜的博客 1620

从零开始理解固定翼能量控制:Pixhawk TECS算法保姆级教程

本文深入解析了Pixhawk飞控中的TECS(总能量控制)算法,旨在解决固定翼无人机纵向控制中速度与高度耦合的经典难题。教程从物理概念出发,阐释了TECS通过管理总能量与分配能量形态来实现油门与升降舵解耦的核心思想,并提供了参数调试的实战指南,帮助开发者优化飞行性能。

white的博客 249

leetcode面试题61. 扑克牌中的顺子

目录题目来源解题方法不需要排序排序 题目来源 解题方法 不需要排序 同样,如果我们能够知道 5 张扑克牌中的最大值 maxValuemaxValue 和最小值 minValueminValue ,那我们就知道,要使它为顺子需要 maxValue - minValue + 1maxValue−minValue+1 张牌。 在查找 maxValuemaxValue 和 minValueminValue 过程中,跳过大小王 00 。 如果 maxValue - minValue + 1 > 5maxVal

qq_40489525的博客 388

从零部署奥比中光Gemini335L:Python SDK编译与手眼标定环境实战

本文提供了一份从零部署奥比中光Gemini 335L深度相机的完整实战指南。详细介绍了驱动安装、Python SDK编译、CMake配置及虚拟环境搭建等关键步骤,并重点解析了如何通过编译生成Python模块,最终实现深度图与点云数据获取,为后续的机械臂手眼标定工作奠定坚实基础。

weixin_29031161的博客 398

剑指Offer_编程题_扑克牌顺子

题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...

JY_WD的博客 2360

优快云独家首发!万字长文,YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程!小白也能看懂!掌握了这个就掌握了魔改YOLO的核心!

🍀🍀🍀YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程,全网最强,学不会算我输!!!

Coding... 1万+

(七)独立按键

(七)独立按键

m0_52555663的博客 1715

【Java】剑指Offer_编程题_扑克牌顺子

题目链接:https://www.nowcoder.com/questionTerminal/762836f4d43d43ca9deb273b3de8e1f4 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,...

includei的博客 250

从零开始讲DDR(8)——AXI 接口MIG 使用(1)

我们简单拆解了MIG AXI接口中测试文件的整体框架,首先在sim_tb_top.sv文件中例化了DDR模型和example_top。在example_top中,又例化了MIG IP和一个流量产生器ddr4_v2_2_8_axi_tg_top。在ddr4_v2_2_8_axi_tg_top中的主要功能是分别例化了boot_mode_gen,prbs_mode_gen,custom_mode_gen和axi_opcode_gen。

apple_53311083的博客 1587

【剑指Offer面试编程题】题目1355:扑克牌顺子--九度OJ

本题应该还是思路比较清晰的一道题目了,我们首先统计一下大小王的个数,然后对给出的数进行排序,排序后我们统计出数字的空缺数字个数,比如若排序后是1 3,则空缺数字2,空缺的数字个数为1。最后我们比较大小王的个数与空缺数字的个数,若大小王个数少则无法补充空缺,牌不是顺子。否则是顺子。

一路向前 1313

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

剑指Offer_编程题 | 扑克牌顺子

class Solution { public: bool IsContinuous( vector<int> numbers ) { if (numbers.size() != 5)return false; sort(numbers.begin(), numbers.end()); int numOfZero = 0; ...

李昊的博客 298

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

剑指Offer_编程题30:扑克牌顺子

题目:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13...

卷卷萌的博客 272

牛客网-剑指offer[编程题]扑克牌顺子 js详解

如果没有0 ,lastIndexOf(0)=-1 var sorted = numbers.sort((a, b) => { return a-b; })//为从小到大排序 function IsContinuous(numbers) { // write code here var sorted = numbers.sort((a, b) => { ...

kotoriyou的博客 402

剑指offer 编程题(44):扑克牌顺子

0代表任意数,判断数组是否为顺子。class Solution { public: bool IsContinuous( vector<int> numbers ) { if(numbers.size() <= 0) { return false; } int arr[14] ={0};

coolwriter的博客 348

剑指offer30天打卡活动(day16 - day19)

持续更新......

m0_74404678的博客 1169

剑指Offer刷题(扑克牌顺子)

剑指Offer刷题(扑克牌顺子)一.题目描述二.代码(C++)三.提交记录四.备注 一.题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3

Umbraner的博客 160

剑指Offer | 扑克牌顺子

做了个剑指Offer的题目目录,链接如下: https://blog.youkuaiyun.com/mengmengdastyle/article/details/80317246 一、题目 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“...

强子的博客 191

算法练习篇之:扑克牌顺子

算法练习篇之:扑克牌顺子 题目描述解题思路代码实现总结 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子……LL不高兴了,他想了想,决定大\小 王可以看成任何...

香农三定律的博客 749

剑指 Offer 61-68

剑指 Offer 61. 扑克牌中的顺子 难度简单55收藏分享切换为英文关注反馈 从扑克牌中随机抽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 class Solution { public: bool isStraig...

神秘的义勇神驹的博客 156

剑指Offer每日6题(JavaScript版)--第八天

43、剑指offer–左旋转字符串 题目描述: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! 思路:通过切分字符串,然后将后部分的字符串贴在

小涛涛的博客 434

【剑指offer】Python题解 1

小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。 剑指 Offer 57 - II. 和为s的连续正数序列 想法:滑动窗口,改变窗口的上下限来遍历 class Solution: def findContinuousSequence(self, target: int) -> List[List[int]]: i,j,res = 1,2,[] while j <= target//2 + 1: cursum = su

weixin_44042304的博客 224

【剑指offer】扑克牌的顺子

九度上把这道题目改成了一副扑克牌有4张大小王,这里姑且不管它最多几个0,就题目来说,不严谨,很含糊,比如这里没有对顺子给出比较严谨的定义,5个以下的连续数字算是顺子吗?现实中要至少5个才算顺子的,而且如果假设3个牌也算顺子,那如果输入的是3个0呢,这有点太牵强了!看论坛里面好多人吐槽。总之,不管那么多,这道题目无论它怎么坑爹,用剑指offer上的思路写的代码AC是没问题的,因为这里不管你0有多少个(只要不大于数组的长度就可)都OK。 我之前想避开排序,或者开辟哈希数组,就遍历一遍求出最大值,最小值,

兰亭风雨的专栏 5126
上一篇: 剑指Offer编程题--求1+2+3+...+n
下一篇: 剑指Offer编程题--左旋转字符串
error0318
博客等级 码龄9年 57粉丝 515原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值