news 2026/7/30 14:43:12

5.17华为OD机试真题 新系统 - 麻将基本胡牌型判断 (JavaPyCC++JsGo)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5.17华为OD机试真题 新系统 - 麻将基本胡牌型判断 (JavaPyCC++JsGo)

麻将基本胡牌型判断

2026 华为OD机试真题 5.17华为OD上机新系统考试真题 100 分题型

点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解

题目描述

给定14张麻将牌,只包含三种花色:万(用1表示)、条(用2表示)、筒(用3表示),每种花色有1-9共9种点数。请判断这14张牌是否能组成基本胡牌型(4个面子 + 1对将牌)。

2026 华为OD机试真题 5.17华为OD上机新系统考试真题 100 分题型

胡牌规则:

  1. 面子:可以是以下两种之一:

i.顺子:同花色连续三张牌,例如:1万2万3万

ii.刻子:三张相同的牌,例如:5条5条5条

  1. 将牌:两张相同的牌

3.胡牌条件:14张牌正好组成4组面子 + 1组将牌

输入描述

第一行包含14个整数,表示每张牌的花色(1-3)

第二行包含14个整数,表示每张牌的点数(1-9)

输入保证:

  • 每张牌的花色和点数对应
  • 同一副牌中可能有多张相同的牌

输出描述

输出一行:

  • 如果能够组成基本胡牌型,返回胡牌组合的数量
  • 如果不能,返回0

示例1

输入

[1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2], [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 4]

输出

1

说明

123456789万(3个顺子)

1234条(1个顺子)

44条(将牌)

总共4个顺子 + 1对将牌,满足胡牌条件。

示例2

输入

[1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2], [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5, 6, 4, 4]

输出

1

说明

111万(刻子)

222条(刻子)

333筒(刻子)

456万(顺子)

示例3

输入

[1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 2, 3], [1, 2, 3, 4, 2, 3, 4, 2, 3, 4, 5, 6, 7, 8]

输出

0

说明

不能胡牌

解题思路

本题要求判断 14 张麻将牌是否能组成“基本胡牌型”(4个面子 + 1对将牌)。

  1. 牌的表示: - 共有 3 种花色,每种花色 1-9 点。我们可以用一个长度为 27 的数组来统计每种牌的数量(索引 $i = (花色-1) \times 9 + (点数-1)$)。

  2. 解题步骤: -统计频率:首先统计输入中 14 张牌的分布。 -枚举将牌:遍历 27 种牌,如果某种牌的数量 $\ge 2$,则可以尝试将其作为“将牌”(一对)。 -递归拆解面子:扣除将牌后,剩下 12 张牌需要拆解成 4 个“面子”(顺子或刻子)。

    • 使用回溯/深度优先搜索 (DFS)进行拆解。
    • 在搜索过程中,优先处理序号最小的牌。
    • 尝试拆成刻子:如果当前牌数量 $\ge 3$,扣除 3 张继续搜索。
    • 尝试拆成顺子:如果当前牌、下一张牌、下下张牌数量都 $\ge 1$,且它们属于同一花色,扣除 3 张继续搜索。
    • 记忆化搜索:由于拆解过程中会出现重复状态,使用记忆化(如 Python 的lru_cache或哈希表)来加速。
    • 计算结果:累加所有可能的胡牌组合数量。

复杂度分析

  • 时间复杂度:$O(27 \times S)$,其中 27 是枚举将牌的种类,$S$ 是拆解 12 张牌的面子时的状态数。由于只有 12 张牌,搜索空间非常小,实际运行速度极快。
  • 空间复杂度:$O(S)$,用于存储搜索过程中的
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 14:35:37

three.js 编辑器的开源运营思路

three.js 编辑器的开源运营思路 本文围绕 three.js 编辑器(一款基于 Three.js 的 AI 驱动可视化低代码编辑器)展开。- 🌐 在线预览:https://z2586300277.github.io/threejs-editor/- 📦 GitHub 开源仓库:ht…

作者头像 李华
网站建设 2026/7/30 14:33:43

TestNG自动化测试框架:从核心原理到企业级实战应用

1. 项目概述:为什么TestNG依然是自动化测试的基石如果你刚接触自动化测试,或者正在Java技术栈里寻找一个趁手的测试框架,那么TestNG这个名字你肯定绕不过去。我做了快十年的自动化测试,从早期的JUnit 3到现在的各种新框架&#xf…

作者头像 李华
网站建设 2026/7/30 14:32:54

演讲技巧与情感传递:打造难忘的告别演讲

1. 项目概述 "第203章 最后的演讲(悦儿)"这个标题让我想起了那些令人难忘的告别时刻。作为一名经历过多次重要演讲的从业者,我深知一场"最后的演讲"所承载的情感重量和技术挑战。这不仅仅是一次普通的公开讲话&#xff0…

作者头像 李华
网站建设 2026/7/30 14:31:37

C语言十进制转二进制:从算法原理到工程实践

1. 从“10”到“1010”:为什么我们还在手动转换? 如果你刚开始接触编程,尤其是C语言,第一个让你感到既基础又有点“绕”的练习,很可能就是十进制转二进制。老师布置了作业,网上搜到的代码要么过于简陋&…

作者头像 李华
网站建设 2026/7/30 14:30:49

2026 TikTok Shop拉美站点第三方收款排行榜:五大平台对比评测

2026年,TikTok Shop的全球扩张势头不减,尤其是拉美市场,正以惊人的速度成长为跨境卖家的“新钱仓”。然而,蓝海市场的红利也伴随着本地合规复杂、汇率波动剧烈、资金周转慢等现实挑战。我们将从全球合规资质、新兴市场本地化能力、…

作者头像 李华