【剑指OFFER】61. 扑克牌中的顺子
发布日期:2021-06-29 19:47:05 浏览次数:2 分类:技术文章

本文共 866 字,大约阅读时间需要 2 分钟。

题目:从扑克牌中随机抽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

限制:

数组长度为 5

数组的数取值为 [0, 13] .

答案:

class Solution {
public boolean isStraight(int[] nums) {
//纯粹的判断 Arrays.sort(nums);//顺序排列 int count0 = 0;//计算0的个数 for(int i = 0; i < 5; i++){
if(nums[i] == 0) count0++; else if(i > 0 && nums[i] == nums[i - 1] && nums[i] != 0) return false;//如果出现除0外的重复,则不为顺子 else if(i == 0 || nums[i - 1] == 0) continue;//正常的顺子 else{
if(nums[i] - nums[i - 1] == 1) continue;//正常的顺子 else if(count0 > 0 && nums[i] - nums[i - 1] - 1 <= count0) count0 -= (nums[i] - nums[i - 1]);//两个数差的个数可以由0补充 else return false;//不能补充 } } return true; }}

转载地址:https://darkness.blog.csdn.net/article/details/115553461 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】65. 不用加减乘除做加法
下一篇:【剑指OFFER】58 - II. 左旋转字符串

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月24日 02时34分36秒