当前位置: 首页 > news >正文

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

题目

从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
在这里插入图片描述

思路

5张牌形成顺子的充分条件是:

(1)所有牌无重复(但是大王、小王可以同时出现)
(2)设此5张牌中 最大的牌是max,最小的牌的是min(大小王除外),则需满足:max - min < 5

因此可以将问题转化成:此5张牌是否可以满足以上两个条件?

方法一:集合Set + 遍历

  • 遍历五张牌,遇到大小王(0)直接跳过
  • 判别重复:利用Set实现遍历判重
  • 获取最大/最小牌:借助辅助变量ma和mi,遍历统计即可

算法流程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

java代码如下:

class Solution{public boolean isStraight(int[] nums){Set<Integer> repeat = new HashSet<>();int max = 0, min = 14;for(int num : nums){if(num == 0) continue;//跳过大小王max = Math.max(max, num);min = Math.min(min, num);if(repeat.contains(num)) return false;//如果有重复,提前返回falserepeat.add(num);//添加到Set}return max - min < 5;//判断是否可以构成顺子}
}

方法二:排序 + 遍历

  • 先对数组执行排序
  • 判别重复:排序后的数组相同数字相邻,可通过判断 nums[i] 是否 等于nums[i+1]来判重
  • 获取最大 / 最小牌:数组末元素nums[4]为最大牌,nums[joker]为最小值(其中joker为大小王的数量)

算法流程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

java代码如下:

class Solution{public boolean isStraight(int[] nums){int joker = 0;Arrays.sort(nums);//数组排序for(int i = 0; i < 4; i++){if(nums[i] == 0){joker++;} else if(nums[i] == nums[i+1]){return false;//如果有重复,提前返回false}}return nums[4] - nums[joker] < 5;//最大牌 - 最小牌 < 5 即可构成顺子}
}

相关文章:

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

题目 从若干副扑克牌中随机抽 5 张牌&#xff0c;判断是不是一个顺子&#xff0c;即这5张牌是不是连续的。2&#xff5e;10为数字本身&#xff0c;A为1&#xff0c;J为11&#xff0c;Q为12&#xff0c;K为13&#xff0c;而大、小王为 0 &#xff0c;可以看成任意数字。A 不能视…...

有特别有创意的网站设计案例

有人说 UI 设计师集艺术性与科学性于一身&#xff0c;不仅需要对工具的使用熟练&#xff0c;更需要对美术艺术有一定的基础了解。如果想要成为优秀的 UI 设计师是一个需要磨砺的过程&#xff0c;需要不断的学习和积累&#xff0c;多看多练多感受&#xff0c;其中对于优质的设计…...

Python基础-数据类型之列表

一、列表的定义 name ["小明", "小红", "笑笑"] 二、列表的使用 除了序列中的操作&#xff0c;列表还有一些其他的操作。 &#xff08;1&#xff09;不使用列表方法对列表进行修改 1&#xff1a;通过索引修改列表中的值 name ["Kit…...

Linux系统基本设置:网络设置(三种界面网络地址配置)

网络地址配置&#xff1a;图形界面配置、命令行界面配置、文本图形界面配置 命令行界面配置 查看网络命令&#xff1a; 想要知道你有多少网卡&#xff0c;都可以通过这两个命令来查看 手动设置网络参数&#xff0c;我们可以使用nmcli这个命令来设置&#xff0c;我们需要知道…...

MySQL(二):查询性能分析

文章目录一、使用explain进行分析二、如何优化数据的访问三、如何重构大查询一、使用explain进行分析 Explain 用来分析 SELECT 查询语句&#xff0c;开发人员可以通过分析 Explain 结果来优化查询语句。 比较重要的字段有&#xff1a; select_type : 查询类型&#xff0c;有…...

Java基础-类加载器

写在前面的话&#xff1a; 基础加强包含了&#xff1a; 反射&#xff0c;动态代理&#xff0c;类加载器&#xff0c;xml&#xff0c;注解&#xff0c;日志&#xff0c;单元测试等知识点 其中最难的是反射和动态代理&#xff0c;其他知识点都非常简单 由于B站P数限制&#xff0c…...

Python 使用pandas处理Excel —— 快递订单处理 数据匹配 邮费计算

问题背景 有表A&#xff0c;其数据如下 关键信息是邮寄地址和单号。 表B&#xff1a; 关键信息是运单号和重量 我们需要做的是&#xff0c;对于表A中的每一条数据&#xff0c;根据其单号&#xff0c;在表B中查找到对应的重量。 在表A中新增一列重量&#xff0c;将刚才查到的…...

【黑马SpringCloud(7)】分布式事务

分布式事务事务的ACID原则分布式事务理论基础CAP定理BASE理论Seataseata的部署seata的集成事务模式XA模式Seata的XA模型优缺点实现XA模式AT模式案例&#xff1a;AT模式更新数据脏写问题优缺点实现AT模式TCC模式流程分析Seata的TCC模型事务悬挂和空回滚实现TCC模式优缺点SAGA模式…...

百度地图API添加自定义标记解决单html文件跨域

百度地图API添加自定义标记解决单html文件跨域 因为要往百度地图上添加一些标注点&#xff0c;而且这些标注点要用自定义的图片&#xff0c;而且只能使用单html文件&#xff0c;不能使用服务器&#xff08;也别问为什么&#xff0c;就是这么个需求&#xff09;&#xff0c;做起…...

如何停止/重启/启动Redis服务

一、命令行直接启动/停止/重启redis 可以直接通过下面的命令启动/停止/重启redis /etc/init.d/redis-server start 启动redis服务 /etc/init.d/redis-server stop 停止redis服务 /etc/init.d/redis-server restart 重启redis服务1、启动redis服务…...

python 的selenium自动操控浏览器教程(2)

人生苦短&#xff0c;我用py 文章目录人生苦短&#xff0c;我用py关于部分网页无法找到元素的问题1方案1方案2关于部分网页无法找到元素的问题2解决方案被网站检查出来我们使用了selenium了怎么办&#xff1f;如何实现前进后退当使用py删除文件时报禁止访问怎么办怎么使用py实现…...

【Deformable Convolution】可变形卷积记录

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 可变形卷积记录 1. 正文 预印版&#xff1a; Deformable Convolutional Networks v1 Deformable ConvNets v2: More Deformable, Better Results 发表版…...

Oracle-Mysql 函数转换

Oracle-Mysql 函数转换limit <> ROWNUMcast <> TO_NUMBERcast as signedcast as unsignedregexp a_\\d <> REGEXP_LIKEschema() <> SELECT USER FROM DUALinformation_schema.COLUMNS表 <> ALL_TAB_COLUMNS表unix_timestampfrom_unixtime <&g…...

【Kafka】一.认识Kafka

kafka是一个分布式消息队列。由 Scala 开发的高性能跨语言分布式消息队列&#xff0c;单机吞吐量可以到达 10w 级&#xff0c;消息延迟在 ms 级。具有高性能、持久化、多副本备份、横向扩展能力。 生产者往队列里写消息&#xff0c;消费者从队列里取消息进行业务逻辑。 一般在…...

Linux软件管理YUM

目录 yum配置文件 创建仓库 yum查询功能 yum安装与升级功能 yum删除功能 yum仓库产生的问题和解决之道 yum与dnf 网络源 YUM就是通过分析RPM的标头数据后&#xff0c;根据各软件的相关性制作出属性依赖时的解决方案&#xff0c;然后可以自动处理软件的依赖属性问题&…...

【自学MYSQL】MySQL Windows安装

MySQL Windows安装 MySQL Windows下载 首先&#xff0c;我们打开 MySQL 的官网&#xff0c;网址如下&#xff1a; https://dev.mysql.com/downloads/mysql/在官网的主页&#xff0c;我们首先根据我们的操作系统&#xff0c;选择对应的系统&#xff0c;这里我们选择 Windows&…...

Linux c编程之常用技巧

一、说明 在Linux C的实际编程应用中,有很多有用的实践技巧,编程中掌握这些知识,会对编程有事半功倍的效果。 二、常用技巧 2.1 if 变量条件的写法 main.c: #include <stdio.h>int main(int argc, char *argv[]) {int a =...

21- 朴素贝叶斯 (NLP自然语言算法) (算法)

朴素贝叶斯要点 概率图模型算法往往应用于NLP自然语言处理领域。根据文本内容判定 分类 。 概率密度公式&#xff1a; 高斯朴素贝叶斯算法: from sklearn.naive_bayes import GaussianNB model GaussianNB() model.fit(X_train,y_train) 伯努利分布朴素贝叶斯算法 fro…...

设计模式第七讲-外观模式、适配器模式、模板方法模式详解

一. 外观模式 1. 背景 在现实生活中&#xff0c;常常存在办事较复杂的例子&#xff0c;如办房产证或注册一家公司&#xff0c;有时要同多个部门联系&#xff0c;这时要是有一个综合部门能解决一切手续问题就好了。 软件设计也是这样&#xff0c;当一个系统的功能越来越强&…...

flutter-第1章-配置环境

flutter-第1章-配置环境 本文针对Windows系统。 一、安装Android Studio 从Android Studio官网下载最新版本&#xff0c;一直默认安装就行。 安装完成要下载SDK&#xff0c;可能会需要科学上网。 打开AS&#xff0c;随便创建一个新项目。 点击右上角的SDK Manager 找到SDK…...

SAS(Serial Attached SCSI)在企业级存储中的核心设计与实战解析

1. SAS技术在企业级存储中的核心价值 如果你拆开过企业级存储设备&#xff0c;大概率会看到那些带着蓝色或黑色连接器的硬盘背板——这就是SAS技术的战场。作为存储架构师&#xff0c;我经手过的全闪存阵列和磁盘柜里&#xff0c;90%的核心连接都依赖SAS协议。和消费级SATA相比…...

百川2-13B-4bits模型微调实践:提升OpenClaw特定任务准确率

百川2-13B-4bits模型微调实践&#xff1a;提升OpenClaw特定任务准确率 1. 为什么需要微调百川模型&#xff1f; 去年冬天&#xff0c;当我第一次用OpenClaw自动整理电脑上的技术文档时&#xff0c;发现了一个尴尬的问题&#xff1a;模型总是把Python代码片段误判为"待办…...

Java 四种安全加载 P12 证书的方案

文章目录从文件绝对路径加载【最常用、最稳定】从 resources 目录加载从 byte [] 字节数组加载从 Base64 字符串加载如果文章对您有用&#xff0c;请关注点赞加收藏&#xff0c;博主会持续更新相关的专栏笔记&#x1fae1; 从文件绝对路径加载【最常用、最稳定】 适合&#xf…...

League-Toolkit:英雄联盟智能助手的全方位解决方案

League-Toolkit&#xff1a;英雄联盟智能助手的全方位解决方案 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的英雄联盟…...

深入解析服务器License管理:从基础命令到实战应用

1. 服务器License管理&#xff1a;为什么它比你想的更重要 如果你管理过服务器&#xff0c;尤其是那些运行着像CAD、EDA、仿真分析这类专业软件的服务器&#xff0c;那你肯定对“License”这个词不陌生。它就像软件的“通行证”&#xff0c;没有它&#xff0c;再强大的硬件也只…...

Fillinger:设计自动化时代的效率提升工具

Fillinger&#xff1a;设计自动化时代的效率提升工具 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 核心价值&#xff1a;从机械操作到创意释放的设计革命 核心价值&#xff1a;让…...

从零搭建一个HarmonyOS版GitCode客户端:我的React Native项目目录结构与配置心得

从零搭建HarmonyOS版GitCode客户端的工程化实践 作为一名长期耕耘在跨平台开发领域的技术实践者&#xff0c;我最近完成了基于React Native的HarmonyOS版GitCode客户端开发。这个项目让我深刻体会到&#xff0c;良好的项目结构设计比功能实现更重要——它直接影响团队协作效率和…...

3大增强型功能体系:重新定义设计师工作方式

3大增强型功能体系&#xff1a;重新定义设计师工作方式 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在当今快节奏的设计行业中&#xff0c;效率就是竞争力。这款开源Illustrator…...

告别Keil?STM32CubeIDE环境搭建全记录:附JAVA安装与汉化资源指北

从Keil到STM32CubeIDE&#xff1a;嵌入式开发环境迁移实战指南 当ST官方逐渐将重心转向HAL库生态时&#xff0c;许多传统开发者正面临工具链升级的抉择。作为一款集成了STM32CubeMX功能的Eclipse-based IDE&#xff0c;STM32CubeIDE不仅代表着开发模式的转变&#xff0c;更预示…...

【权威认证|Pydantic v2+Starlette v1.12+FastAPI 2.0深度兼容报告】:为什么你的async generator在/ai/chat接口里静默失败?

第一章&#xff1a;FastAPI 2.0 异步 AI 流式响应 避坑指南FastAPI 2.0 对异步流式响应&#xff08;StreamingResponse&#xff09;的底层行为进行了关键调整&#xff0c;尤其在事件循环绑定、响应体缓冲策略及客户端断连检测方面与 1.x 版本存在显著差异。若沿用旧版流式生成器…...