(其他) 剑指 Offer 61. 扑克牌中的顺子 ——【Leetcode每日一题】

news/2025/3/16 22:13:13/

❓剑指 Offer 61. 扑克牌中的顺子

难度:简单

若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J11Q12K13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14

示例 1:

输入: [1,2,3,4,5]
输出: True

示例 2:

输入: [0,0,1,2,5]
输出: True

限制

  • 数组长度为 5
  • 数组的数取值为 [0, 13] .

💡思路:

  1. 先对数组执行排序。
  2. 判别重复: 排序数组中的相同元素位置相邻,因此可通过遍历数组,判断 nums[i]=nums[i+1] 是否成立来判重。
  3. 获取最大 / 最小的牌: 排序后,数组末位元素 nums[4] 为最大牌;元素 nums[z] 为最小牌,其中 z 为大小王的数量。
    • 如果 nums[4] - nums[z] < 4 ,返回 true;
    • 否则返回 false

🍁代码:(C++、Java)

C++

class Solution {
public:bool isStraight(vector<int>& nums) {sort(nums.begin(), nums.end());int z = 0;for(int i = 0; i < 4; i++){if(nums[i] == 0) z++;else if(nums[i] == nums[i + 1]) return false;}return nums[4] - nums[z] < 5;}
};

Java

class Solution {public boolean isStraight(int[] nums) {Arrays.sort(nums);int z = 0;for(int i = 0; i < 4; i++){if(nums[i] == 0) z++;else if(nums[i] == nums[i + 1]) return false;}return nums[4] - nums[z] < 5;}
}

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n l o g n ) = O ( 5 l o g 5 ) = O ( 1 ) O(nlogn)=O(5log5)=O(1) O(nlogn)=O(5log5)=O(1): 其中 nnums 长度,本题中 n≡5 ;数组排序使用 O ( n l o g n ) O(nlogn) O(nlogn) 时间。
  • 空间复杂度 O ( 1 ) O(1) O(1)

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!


http://www.ppmy.cn/news/1106334.html

相关文章

草莓CDMS独创的内容分销系统 微信小说平台系统v1.0

草莓CDMS是一个采用thinkphp5.1Easywechat4.0swooleredis开发的原创内容分销系统&#xff0c;其特点包括简单操作、灵活后台设置、两种对接模式以及五种用户角色等。系统集成了微信开放平台扫码授权和微信公众平台手动对接的功能&#xff0c;并支持多种经营模式&#xff0c;如平…

在 Arweave 中轻松管理文件:借助 4EVERLAND 完成 Web3 前端Path Manifests的终极指南

为什么使用Path Manifests&#xff1f; 当在 IPFS 上发布 NFT 时&#xff0c;图片和元数据会被上传到 IPFS 网络以获得一个根 CID&#xff0c;其形式如下&#xff1a; ipfs://bafybeic36ik6cngu37xbzmpytuvyo7z3lyeen44clkkxq5d263zj4nkzr4 通过使用这个根 CID&#xff0c;每…

站在自动装配角度浅析Spring和SpringBoot的区别

Spring的自动装配实现步骤可以理解为两步&#xff1a;加载类&#xff0c;注入类。首先Spring容器启动的时候会扫描Spring配置文件&#xff0c;基于类加载器机制通过配置文件指定的扫包路径批量递归加载类&#xff0c;把加载的类注册成Bean组件放入Spring上下文容器ApplicationC…

vscode 画流程图

文章目录 1、安装插件 draw2、新建文件3、开始画图4、另存为图片 vscode可以画流程图了&#xff0c;只需要安装插件就可以了。 1、安装插件 draw 2、新建文件 3、开始画图 4、另存为图片

企业faq系统搭建平台Baklib,企业自定义管理平台

FAQ是当前网络上提供在线帮助的主要手段&#xff0c;通过事先组织好一些可能的常见问题的问答&#xff0c;发布在网页上为用户提供咨询服务。许多的Web用户都更加偏向于可信赖的FAQ页面&#xff0c;以此作为快速查找更多信息的方法。因为用户时间的紧缺&#xff0c;并且想知道产…

2023年9月制造业NPDP产品经理国际认证报名来这错不了

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

界面控件DevExtreme DateRangeBox组件发布,支持日期范围选择!

在最新的v23.1版本中&#xff0c;DevExpress官方已经正式发布了DevExtreme DateRangeBox小部件&#xff0c;支持所有JavaScript框架&#xff0c;包括Angular、React、Vue和jQuery。这个新的控件允许最终用户选择一个日期范围&#xff0c;该组件继承了DateBox组件的特性&#xf…

pytorch tensorflow 保存和加载模型

1. Pytorch 1.1.1 save网络结构和参数&#xff1a; 注意最后一行为“self.state_dict()” def save(self,t):current_path os.path.dirname(os.path.abspath(__file__))model_path model/2E_model_ t _self.name/save_path os.path.join(current_path,model_path)if not o…