返回介绍

45. 扑克牌顺子

发布于 2023-08-30 21:54:39 字数 999 浏览 0 评论 0 收藏 0

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。

思路:最大的数减最小但不是 0 的数应该小于等于 4 且不能有重复。

则使用 HashSet 来解决重复问题。

import java.util.*;
public class Solution {
  public boolean isContinuous(int [] numbers) {
    int max = 0;
    int min = 14;
    int count = 0;
    HashSet<Integer> set = new HashSet<>();
    for(int number : numbers){
      if(number == 0){ 
        count++;
        continue;
      }
      set.add(number);
      min = Math.min(min, number);
      max = Math.max(max, number);
    } 
    if(count+set.size()<5) return false;
    if(max - min > 4) return false;
    return true;
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文