美文网首页
LeetCode题解:2347. 最好的扑克手牌,哈希表,详细注

LeetCode题解:2347. 最好的扑克手牌,哈希表,详细注

作者: Lee_Chen | 来源:发表于2024-10-09 23:15 被阅读0次

原题链接:
https://leetcode.cn/problems/best-poker-hand/

理解题意:

  1. 有五张相同花色的扑克牌,与五张扑克牌只有一种花色意思相同
  2. 五张大小互不相同的扑克牌,与共有五种大小的扑克牌意思相同
  3. 该题要区分花色和大小分别统计数量

解题思路:

  1. 先用Set统计共有多少种花色,如果只有一种,表示有“五张相同花色的扑克牌”
  2. Map统计每种大小的扑克牌共有几张
    • 如果rankMap.size5,表示有“五张大小互不相同的扑克牌”
    • 如果rankMap中有牌的数量大于等于3,即为“三条”
    • 如果rankMap有牌的数量等于2,即为“对子”
/**
 * @param {number[]} ranks
 * @param {character[]} suits
 * @return {string}
 */
var bestHand = function (ranks, suits) {
  // 使用Set统计有多少种花色
  let suitSet = new Set()

  for (const suit of suits) {
    suitSet.add(suit)
  }

  // 如果只有一种花色,表示同种花色有5张
  if (suitSet.size === 1) {
    return 'Flush'
  }

  // 使用Map统计每种大小牌的数量
  let rankMap = new Map()

  for (const rank of ranks) {
    rankMap.set(rank, (rankMap.get(rank) ?? 0) + 1)
  }

  // 如果有五种大小,表示有五张大小互不相同的扑克牌
  if (rankMap.size === 5) {
    return 'High Card'
  }

  // 查看不同大小的牌都有几张
  for (const count of rankMap.values()) {
    // 大等于3张都为“三条”
    if (count >= 3) {
      return 'Three of a Kind'
    }
  }

  // 剩下的只有“对子”一种可能
  return 'Pair'
}

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

相关文章

  • LeetCode 13. 罗马数字转整数

    题目描述 题解 暴力判断 哈希表法

  • leetcode 第一天

    今天在看leetcode的第一题 自己首先要学的概念是哈希表。 哈希表的定义是: 哈希表是一种数据结构,这种数据结...

  • 哈希表 06

    哈希表06 [https://imgchr.com/i/ruuQNq] [https://leetcode-cn....

  • LeetCode的sum问题

    这里写几个sum问题的总结。首先是leetcode 1:two sum解法很简单,就是哈希表。哈希表的查找速度是O...

  • 喝酒

    喝酒的时候难免会很干瘪,就需要点小游戏来热热场,最常见的就是扑克牌游戏。 扑克牌1和3代表要自己喝酒; 扑克牌2代...

  • LeetCode 1. 两数之和

    题目描述 题解 暴力法 时间复杂度为,空间复杂度为。 哈希表法 时间复杂度为,空间复杂度为。 哈希表法进阶 时间复...

  • 力扣题解(哈希表)

    1. 两数之和 3. 无重复字符的最长子串 参考 136. 只出现一次的数字 异或运算的性质: 交换律:a ^ b...

  • 别让结果论影响你的决定

    《别让结果论影响你的决定》。这篇文章是对传奇女扑克牌手安妮·杜克的采访。作为一名很少见的女扑克牌手,杜克不仅收入很...

  • LeetCode | 面试题03. 数组中重复的数字【剑指Off

    LeetCode 面试题03. 数组中重复的数字【剑指Offer】【Easy】【Python】【数组】【哈希表】【...

  • [leetcode/lintcode 题解] 解码字符串 ·

    leetcode/lintcode 题解] 解码字符串 · Decode String 【题目描述】 给出一个表...

网友评论

      本文标题:LeetCode题解:2347. 最好的扑克手牌,哈希表,详细注

      本文链接:https://www.haomeiwen.com/subject/qwtwrjtx.html