LeetCode 剑指 Offer 61. 扑克牌中的顺子
排序数组:首先将牌进行排序,以便更容易检查是否连续。 统计0的数量:因为大王和小王(0)可以替换为任何数字,所以统计0的数量可能会影响判断结果。 去除了0后的数组:检查去除了0后的数组是否能形成连续的五个数字。 处理0的情况:如果有至少两个0,可以用其中一个0来替换数组中的一个数字,使得剩下的四个数字连续。 检查数组长度:确保数组长度为5,否则直接返回false。 排序数组:将数组按升序排序。 统计0的数量:遍历数组,统计0的数量。 去除了0后的数组:创建一个新的数组,包含所有非零的元素。 判断是否为顺子: 返回结果:根据上述判断,返回是否为顺子。 数组长度检查:首先检查数组长度是否为5,否则直接返回false。 排序:将数组排序,以便后续处理。 统计0的数量:遍历数组,统计0的数量。 去除了0后的数组:创建一个新的数组 判断是否为顺子: 返回结果:根据上述判断,返回是否为顺子。
发布日期:2025-06-19 11:25:22
浏览次数:4
分类:精选文章
本文共 1561 字,大约阅读时间需要 5 分钟。
为了判断抽到的扑克牌是否形成一个顺子,我们需要考虑以下几点:
具体步骤如下:
- 如果去除了0后的数组长度小于5,且0的数量大于等于2,返回true。
- 否则,如果去除了0后的数组长度为5,检查这些数字是否连续。
以下是代码实现:
import java.util.Arrays;public class Solution { public boolean isStraight(int[] nums) { if (nums.length != 5) { return false; } Arrays.sort(nums); int count0 = 0; for (int num : nums) { if (num == 0) { count0++; } } int[] d = new int[nums.length - count0]; for (int i = 0; i < nums.length; i++) { if (nums[i] != 0) { d[i - count0] = nums[i]; } } if (d.length < 5) { if (count0 >= 2) { return true; } else { return false; } } else { boolean isConsecutive = true; for (int i = 1; i < d.length; i++) { if (d[i] - d[i-1] != 1) { isConsecutive = false; break; } } return isConsecutive; } }} 解释:
d,包含所有非零元素。- 如果
d的长度小于5且0的数量至少为2,返回true,因为可以使用0来替换其中一个数字,使得剩下的四个数字连续。 - 否则,如果
d的长度为5,检查这些数字是否连续。如果是,返回true;否则,返回false。
发表评论
最新留言
感谢大佬
[***.8.128.20]2026年05月25日 21时01分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
RabbitMQ - 死信、TTL原理、延迟队列安装和配置
2023-03-01
PHP数据访问的多重查询(租房子查询)
2023-03-01
RabbitMQ - 如保证消息的可靠性?(消息确认、消息持久化、失败重试机制)
2023-03-01
RabbitMQ - 基于 SpringAMQP 带你实现五种消息队列模型
2023-03-01
php数组函数分析--array_column
2023-03-01
php数组去重复数据的小例子
2023-03-01
php数组实现:哈希 +双向链表
2023-03-01
PHP数组排序函数array_multisort()函数详解(二)
2023-03-01
php数组的几个函数和超全局变量
2023-03-01
PHP文件上传详解
2023-03-01
PHP文件锁
2023-03-01
php文本框输入制定文本,php – 当用户没有向文本框输入任何内容时...
2023-03-01
PHP时间戳和日期相互转换操作总结
2023-03-01
php时间戳知识点,php 时间戳函数总结与示例
2023-03-01
php更新数据库失败,php – 无法更新MySQL数据库
2023-03-01
php机器人聊天对话框,基于AIML的PHP聊天机器人
2023-03-01
PHP查找数组中最大值与最小值
2023-03-01
php查最大值,在PHP数组中查找最大值
2023-03-01
php根据年月日计算年龄
2023-03-01