华为OD机试 - 移动元素获得最大数组和 - 广度优先搜索BFS(Python/JS/C/C++ 2025 B卷 200分)

AI摘要

本文围绕2025B卷华为OD机试题目展开,题目是对1到n(n为3的倍数)的数组,每次取3个元素,去掉最大和最小值,累加剩余元素得S,可移动元素改变S。文章给出输入输出描述、测试用例,阐述解题思路,还提供Python、JS、C、C++算法源码。

一、题目描述

1到n的n个连续的数字组成一个数组,n为3的倍数

每次按照顺序从数组中取出3个元素,去掉这3个元素中的一个最大值和一个最小值,并将剩下的元素累加为S,S初始值为0

可以通过调整数组中元素的位置改变最终结果,每移动一个元素计为移动一次。

请计算最少移动几次可以使得数组和S最大。

二、输入描述

数组长度n的范围为[3, 600]

数组中数字范围[1, 10000]

数组由一个字符串表示,不同数字元素之间使用空格分隔

三、输出描述

移动次数是一个自然数

无需移动,返回0

四、测试用例

测试用例1

1、输入

3 8 9 7 4 2 5 6 1

2、输出

1

3、说明

需要一次交换操作(例如,将T0中的一个Cat 2元素与T2中的一个Cat 1元素交换)来平衡所有三元组的类别。

测试用例2

1、输入

1 2 3 4 5 6 7 8 9

2、输出

2

华为OD机试200分题:连连看算法多语言实现与优化详解 广度优先搜索(BFS)是解决图论和路径查找问题的经典算法,其核心原理是通过队列按层遍历节点,确保找到的路径是最短的。在工程实践中,BFS常被应用于游戏AI、迷宫求解和网络爬虫等场景。当问题增加约束条件,如路径的转弯次数限制时,基础BFS需要升级为带状态记录的BFS,并结合记忆化搜索进行剪枝,以在状态空间爆炸前高效找到可行解。本文以华为OD机试高频真题“连连看”为具体案例,深入剖析了在Java、Python、JavaScript和C++四种主流语言中,如何实现一个兼顾正确性、性能与代码优雅的BFS解决方案,并 阅读详情

相关推荐

2025华为od机试真题B卷【数组排列求和 / 移动元素获得最大数组和】Python实现

例如,如果三元组是 (P1, P1, P2),它有两种不同类别 (P1, P2),所以 d_k=2。这意味着为了形成 (P1,P2,P3) 的结构,这个三元组内的两个元素(一个P1,一个P2)可以视为“就位”,但还缺少一个P3,并且多了一个P1。为了达到这个目的,每个三元组必须包含一个来自最小的 n/3 个数(P1类),一个来自中间的 n/3 个数(P2类),一个来自最大的 n/3 个数(P3类)。排序后,前 n/3 个元素被划分为P1类,接下来的 n/3 个元素为P2类,最后的 n/3 个元素为P3类。

MISAYAONE的博客 764

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解(Python/JS/C/C++)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释发现新题目,随时更新。

学Java,找哪吒 5万+

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 7万+

华为OD机试 - 返回矩阵中非1的元素个数 - 广度优先搜索BFS(Python/JS/C/C++ 2025 B卷 200分)

广度优先搜索(BFS)是一种按层次逐层遍历节点的搜索算法,适用于寻找最短路径或逐步扩散问题。

学Java,找哪吒 860

华为OD机试 - 最长的顺子 - 动态规划(Python/JS/C/C++ 新系统 200分)

每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 3315

华为OD机试 - 简易内存池(Python/JS/C/C++ 新系统 200分)

每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 3229

华为OD机试 - 字符串分割(Python/JS/C/C++ 2025 B卷 100分)

分隔成 N+1 个子串,给定正整数数组 K,要求除第一个子串外,其余的子串每 K 个字符组成新的子串,并‘-’分隔。反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写 Q 字母;子串为 12abc、abCABc、4aB@,第一个子串保留,后面的子串每 3 个字符一组为 abC、ABC、4aB、@,子串为 12abc、abCABc、4aB@,第一个子串保留,输出转换后的字符串。

学Java,找哪吒 2916

华为OD机试 - 幻方修复(Python/JS/C/C++ 2025 B卷 200分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。幻方(Magic Square)是一个由 1~N²,共 N² 个整数构成的 N*N 矩阵,满足每行、列和对角线上的数字和相等。上回你已经帮助小明将写错一个数字的幻方进行了修复,小明在感激之余也想进一步试试你的水平,于是他准备了有两个数字发生了位置

学Java,找哪吒 2849

华为OD机试 - 荒岛求生 - 栈Stack(Python/JS/C/C++ 新系统 100分)

每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2838

华为OD机试 - 开源项目热度榜单(Python/JS/C/C++ 2025 C卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 2278

华为OD机试 - 计算误码率(Python/JS/C/C++ 双机位C卷 100分)

移动通信 网络中的误码率主要是指比特误码率,其计算公式如下:比特误码率 = 错误比特数 / 传输总比特数,为了简单,我们引入字符串来表示误码通信的信息,一个字符错误了,就认为出现了一个误码。我们需要将这两个压缩字符串解压成实际的字符序列,然后逐位比较它们,统计误码(不同字符)的数量。题目给出两个经过压缩编码的字符串,通过解压缩后需要判断两个字符串在解压后的误码率,即对应位置不同的字符数量占总字符数量的比例。输入一个标准的字符串,和一个传输前的字符串,计算误码率。两个解压后的字符串完全相同,没有错误字符。

学Java,找哪吒 2193

华为OD机试 - 绘图机器 - 双指针(Python/JS/C/C++ 新系统 100分)

每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2168

华为OD机试 - 最快到达医院的方法(Python/JS/C/C++ 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2167

华为OD机试 - 德州扑克 - 逻辑分析(Python/JS/C/C++ 2025 C卷 200分)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释,发现新题目,随时更新。

学Java,找哪吒 2061

华为OD机试 - TLV格式(Python/JS/C/C++ 2025 C卷 100分)

两端通过TLV格式的报文来通信,现在收到对端的一个TLV格式的消息包,要求生成匹配后的(tag,length,valueOffset)列表。和需要匹配的n个tag对应的n行匹配结果,每一行由长度和偏移量组成。第二行:需要匹配的tag数量n(0 < n < 1000)后面N行:需要匹配n个tag值(十进制表示),递增排列。标签10(0A)存在,长度3,valueOffset=2。标签15(0F)长度4,valueOffset=2。标签14(0E)长度2,valueOffset=8。

学Java,找哪吒 2037

华为OD机试 - 找出作弊的人(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 1985

华为OD机试 - 转骰子(Python/JS/C/C++ 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 1975

华为OD机试 - 推荐多样性(Python/JS/C/C++ 双机位A卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 1916

【开源数据集】电动车佩戴头盔检测数据集(TWHD)

佩戴头盔检测数据集VOC格式图像与标注数量各5448张

hzg19930513的博客 5165

【论文笔记】LIME: low-light image enhancement via illumination map estimation

【论文笔记】LIME: low-light image enhancement via illumination map estimation 一篇低光图像增强,引用超1000次的经典论文

weixin_45565519的博客 1793

曙光服务器RAID配置避坑指南:MegaRAID SAS 9361-8i实战(含Foreign状态处理)

本文详细解析了曙光服务器搭配MegaRAID SAS 9361-8i控制器的RAID配置全流程,包括RAID0和RAID5的创建、Foreign状态处理及性能优化策略。特别针对磁盘迁移中的Foreign状态问题,提供了系统化的解决方案和高级恢复技巧,助力企业级IT运维提升存储配置的稳定性和可靠性。

weixin_29200741的博客 412

解决:Solving environment: failed CondaValueError: Malformed version string ‘~‘: invalid character(s).

解决:Solving environment: failed CondaValueError: Malformed version string '~': invalid character(s).

晚风微凉的博客 1万+

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6389

用STM32F103C8T6和TB6612驱动模块,从零搭建一辆能避障循迹的智能小车(附完整代码)

本文详细介绍了如何使用STM32F103C8T6和TB6612驱动模块从零搭建一辆能避障循迹的智能小车。内容涵盖硬件选型、电路设计、底层驱动配置以及智能行为算法实现,并附有完整代码示例,帮助开发者快速掌握嵌入式开发的核心技术。

weixin_42641741的博客 444

大众奥迪诊断不求人:手把手解析SAE J2819(CAN TP2.0)协议报文与连接流程

本文深入解析大众奥迪车型诊断核心标准SAE J2819(CAN TP2.0)协议,详细拆解连接建立流程与报文控制字段。通过实战案例展示通道设置、参数协商等关键步骤,提供诊断设备配置建议和常见故障排查技巧,帮助工程师掌握汽车诊断通信协议的精髓。

weixin_30421809的博客 396

Android 13 内置xapk安装包的方法

安装xapk 内置xapk

安卓兼职framework和app工程师的博客 223

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 华为OD机试 - 移动元素获得最大数组和 - 广度优先搜索BFS(Java 2025 B卷 200分)
下一篇: 华为OD机试 - 消消乐游戏 - 栈Stack,通过Deque优化(Python/JS/C/C++ 2025 B卷 100分)
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2933原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值