第五题:寻找最大葫芦的思路(易)

160 阅读1分钟

解题思路

ai解题只能辅助然后给一个思路,细节上很容易把握不到位 核心思路就是枚举,这里有个小技巧,就是判断牌的优先级大小,我们可以用一个字典来界定优先级,

dic = { 0: 0, 1: 13, 13: 12, 12: 11, 11: 10, 10: 9, 9: 8, 8: 7, 7: 6, 6: 5, 5: 4, 4: 3, 3: 2, 2: 1 }
  1. 统计牌的出现次数

    • 使用一个字典统计每种牌的出现次数。

    • 例如,给定牌组 [A, A, A, K, K, Q, Q, Q],统计结果为:

      counts = {1: 3, 13: 2, 12: 3}
      
  2. 枚举所有可能的“葫芦”组合

    • 从统计结果中找出符合条件的牌 a(至少出现 3 次)。
    • 找出符合条件的牌 b(至少出现 2 次),且 ab 必须不同。
  3. 验证总和值限制

    • 检查 3 * a + 2 * b <= max 是否成立。
  4. 比较选择最大值

    • 优先选择 a 最大的组合。
    • a 相同,选择 b 最大的组合。
  5. 输出结果

    • 如果找到符合条件的“葫芦”,输出 ab
    • 如果找不到符合条件的组合,输出 0, 0