【每日一题Day124】LC2347最好的扑克手牌 | 哈希表

简介: 【每日一题Day124】LC2347最好的扑克手牌 | 哈希表

最好的扑克手牌【LC2347】

You are given an integer array ranks and a character array suits. You have 5 cards where the ith card has a rank of ranks[i] and a suit of suits[i].

The following are the types of poker hands you can make from best to worst:

  1. "Flush": Five cards of the same suit.
  2. "Three of a Kind": Three cards of the same rank.
  3. "Pair": Two cards of the same rank.
  4. "High Card": Any single card.

Return a string representing the best type of poker hand you can make with the given cards.


Note that the return values are case-sensitive.


  • 思路:使用哈希表记录花色相同的扑克牌的数量以及大小相同的扑克牌的数量,并使用变量记录花色相同的最大数量和大小相同的最大数量,最后从好到坏返回手牌类型
  • 实现
class Solution {
    public String bestHand(int[] ranks, char[] suits) {
        int n = ranks.length;
        Map<Integer,Integer> count = new HashMap<>();
        int maxSuit = 0, maxRank = 0;
        for (int i = 0; i < n; i++){
            int rank = ranks[i], suit = suits[i];
            count.put(rank, count.getOrDefault(rank, 0) + 1);
            count.put(suit, count.getOrDefault(suit, 0) + 1);
            maxSuit = Math.max(maxSuit, count.get(suit));
            maxRank = Math.max(maxRank, count.get(rank));
        }
        if (maxSuit == 5){
            return "Flush";
        }else if (maxRank >= 3){
            return "Three of a Kind";
        }else if (maxRank == 2){
            return "Pair";
        }
        return "High Card";
    }
}

复杂度

时间复杂度:O ( n )

空间复杂度:O ( 1 )

目录
相关文章
|
6月前
【每日一题Day199】LC1010总持续时间可被 60 整除的歌曲 | 哈希表
【每日一题Day199】LC1010总持续时间可被 60 整除的歌曲 | 哈希表
43 1
|
6月前
|
算法
【每日一题Day229】LC2352相等行列对 | 哈希
【每日一题Day229】LC2352相等行列对 | 哈希
45 0
|
6月前
|
存储
【每日一题Day113】LC1797设计一个验证系统 | 哈希表
【每日一题Day113】LC1797设计一个验证系统 | 哈希表
43 0
|
6月前
|
存储
【每日一题Day275】LC771宝石与石头 | 哈希表 状态压缩
【每日一题Day275】LC771宝石与石头 | 哈希表 状态压缩
44 0
|
6月前
|
存储
【每日一题Day158】LC2395和相等的子数组 | 哈希表
【每日一题Day158】LC2395和相等的子数组 | 哈希表
31 0
|
6月前
|
算法
【每日一题Day297】LC2682找出转圈游戏输家 | 模拟+哈希表
【每日一题Day297】LC2682找出转圈游戏输家 | 模拟+哈希表
67 0
|
6月前
|
机器学习/深度学习
【每日一题Day120】LC2341数组能形成多少数对 | 哈希表 排序
【每日一题Day120】LC2341数组能形成多少数对 | 哈希表 排序
40 0
|
6月前
|
存储 算法
【每日一题Day341】LC2034股票价格波动 | 堆+哈希表
【每日一题Day341】LC2034股票价格波动 | 堆+哈希表
31 0
|
6月前
|
存储 人工智能 BI
【每日一题Day147】LC1615最大网络秩 | 枚举 哈希表
【每日一题Day147】LC1615最大网络秩 | 枚举 哈希表
50 0
|
6月前
【每日一题Day136】LC982按位与为零的三元组 | 哈希表
【每日一题Day136】LC982按位与为零的三元组 | 哈希表
62 0