华为OD机考2025C卷 - 高矮个子排队(Java & Python& JS & C++ & C)

最新华为上机考试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
2025华为od机试2025C卷-华为OD上机考试2025年C卷

题目描述

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。

我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高或者相等;每一个“矮”位置的小朋友要比相邻的位置矮或者相等;

要求小朋友们移动的距离和最小,第一个从“高”位开始排,输出最小移动距离即可。

例如,在示范小队{5,3,1,2,3}中,{5, 1, 3, 2, 3}是排序结果。

{5, 2, 3, 1, 3} 虽然也满足“高”“矮”“高”“矮”顺序排列,但小朋友们的移动距离大,所以不是最优结果。

移动距离的定义如下所示:

第二位小朋友移到第三位小朋友后面,移动距离为1,若移动到第四位小朋友后面,移动距离为2;

输入描述

排序前的小朋友,以英文空格的正整数:

4 3 5 7 8

注:小朋友<100个

输出描述

排序后的小朋友,以英文空格分割的正整数:4 3 7 5 8

备注:4(高)3(矮)7(高)5(矮)8(高), 输出结果为最小移动距离,只有5和7交换了位置,移动距离都是1。

示例1

输入

4 1 3 5 2 

输出

 4 1 5 2 3

说明

示例2

输入

1 1 1 1 1 

输出

1 1 1 1 1 

说明

相邻位置可以相等

示例3

输入

xxx

输出

[ ]

说明

出现非法参数情况, 返回空数组。

解题思路

这道题看似简单,但看完题目可能会觉得不止这么简单。因为要保证移动距离最小,这意味着可能存在多种情况需要多次比较。不过,实际并没有那么复杂。

比如在用例1中,乍一看好像有点问题:直接让5和2交换位置,得到的结果是:4 1 3 2 5,这样也符合题意,而且移动距离只有1,似乎更符合要求。

然而,这样想的同学可能忽略了题目中的一句关键提示:“第一个从‘高’位开始排”。这句话的意思是,我们只需要从第一个小朋友开始排列,并在发现不符合要求的排队顺序时,就进行交换。这样大大降低了题目难度。

代码解释

为了实现将小朋友的身高按照“高矮交替”的顺序排列,代码中使用了以下判断条件:

heights[i
华为OD机试 - 高矮个子排队 - 滑动窗口(Java 2024 B卷 100分) 每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。 阅读详情

相关推荐

华为OD机试 - 高矮个子排队(Python)

而用例输出的逻辑是先让3和5交换,变为 4 1 5 3 2,再让3和2交换,变为 4 1 5 2 3,这样的话也满足:高 矮 高 矮 高,但是却交换了两次,也就是说移动距离是2。{5, 2, 3, 1, 3} 虽然也满足“高”“矮”“高”“矮”顺序排列,但小朋友们的移动距离大,所以不是最优结果。的最小移动距离应该是1,即让5和2交换位置,变为:4 1 3 2 5,这样的话,也满足:高 矮 高 矮 高。例如,在示范小队{5,3,1,2,3}中,{5, 1, 3, 2, 3}是排序结果。注:小朋友<100个。

m0_46181452的博客 373

华为OD机试E卷 - 高矮个子排队(Java & Python& JS & C++ & C )

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高或者相等;每一个“矮”位置的小朋友要比相邻的位置矮或者相等;要求小朋友们移动的距离和最小,第一个从“高”位开始排,输出最小移动距离即可。例如,在示范小队{5,3,1,2,3}中,{5, 1, 3, 2, 3}是排序结果。

算法大师! 2218

华为OD机考2025B卷 - 高矮个子排队(Java & Python& JS & C++ & C )

华为OD机考2025B卷 - 高矮个子排队(Java & Python& JS & C++ & C )

算法大师! 1483

2026华为OD机考新系统真题 + 双机位C卷 + 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 45万+

【华为OD机试真题】65、高矮个子排队 | 机试真题+思路参考+代码解析(C语言、C++、Java、Py、JS)

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。 >&nbsp; 我们现在希望小朋友排队,以"高" "矮" "高" "矮" 顺序排列,每一个高位置的小朋友要比相邻的位置高或者相等;每个 "矮" 位置的小朋友要比相邻的位置矮或者相等; >&nbsp; 要求小朋友们移动的距离和最小,第一个从“高"位开始排,输出最小移动距离即可。 >&nbsp; 例如,在示范小队{5,3,1,2,3}中, {5, 1, 3, 2, 3}是排序结果。 >&nbsp; {5,2,

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 1090

【华为OD机试真题 Java语言】65、高矮个子排队 | 机试真题+思路参考+代码解析

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。 >&nbsp; 我们现在希望小朋友排队,以"高" "矮" "高" "矮" 顺序排列,每一个高位置的小朋友要比相邻的位置高或者相等;每个 "矮" 位置的小朋友要比相邻的位置矮或者相等; >&nbsp; 要求小朋友们移动的距离和最小,第一个从“高"位开始排,输出最小移动距离即可。 >&nbsp; 例如,在示范小队{5,3,1,2,3}中, {5, 1, 3, 2, 3}是排序结果。 >&nbsp; {5,2,

KJ.JK 1439

关于华为机试会不会考原题Od的问题?

实证一下华为机试可能会考到原题吧。

MISAYAONE的博客 4万+

【华为机试真题 C++】高矮个子排队-100

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。

weixin_52894047的博客 896

华为OD机试 - 高矮个子排队(C语言)

而用例输出的逻辑是先让3和5交换,变为 4 1 5 3 2,再让3和2交换,变为 4 1 5 2 3,这样的话也满足:高 矮 高 矮 高,但是却交换了两次,也就是说移动距离是2。{5, 2, 3, 1, 3} 虽然也满足“高”“矮”“高”“矮”顺序排列,但小朋友们的移动距离大,所以不是最优结果。的最小移动距离应该是1,即让5和2交换位置,变为:4 1 3 2 5,这样的话,也满足:高 矮 高 矮 高。例如,在示范小队{5,3,1,2,3}中,{5, 1, 3, 2, 3}是排序结果。注:小朋友<100个。

qq_34143141的博客 300

【华为OD机试真题 Java】高矮个子排队

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高或者相等;每一个“矮”位置的小朋友要比相邻的位置矮或者相等;要求小朋友们移动的距离和最小,第一个从“高”位开始排,输出最小移动距离即可。

A_D_I_D_A_S的博客 210

【华为OD机试真题 Java】小朋友高矮排序

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高或者相等;每一个“矮”位置的小朋友要比相邻的位置矮或者相等;要求小朋友们移动的距离和最小,第一个从“高”位开始排,输出最小移动距离即可。

qq_40642440的博客 276

SAP-QM-质检操作

SAP-QM-质检操作

yanzibing99的博客 8160

对LSTM中每个batch都初始化隐含层的理解

不知道有没有人和我有一样疑惑 在LSTM相关的代码中,为什么每个batch都会将隐藏层重新初始化, 这样不会把以前训练出来的参数丢掉吗?? 比如 代码来自GitHub 看了一些解释是h与c是状态,不是参数,每个batch中都需要初始化为0,LSTM 中的参数是W,b。 网络中训练的是参数,不是状态。 说真的。。。当时我没怎么看懂。。。 咨询了实验室的师兄后,我有了自己的理解 产生误解的主要原因是我对RNN和LSTM的结构理解不深入,我们通常看到RNN结构图基本都是这样的 ...

Chauncey_Wang的博客 5906

从“Segmentation fault”到流畅运行:深入解析CARLA Engine crash与Signal 11报错排查指南

本文深入解析了CARLA仿真平台运行时遭遇的Engine crash与Signal 11(Segmentation fault)报错。文章指出,该错误的根本原因常与NVIDIA显卡驱动版本不兼容有关,并提供了从日志分析、常见方案试错到驱动安全降级的完整排查指南,帮助用户从崩溃走向流畅运行。

pca5navigator的博客 460

用Python实现单层感知器:5分钟搞定逻辑与/或/异或分类(附避坑指南)

本文通过Python代码实战,详细讲解了单层感知器的核心原理与实现步骤,5分钟内即可完成逻辑与、或运算的分类任务。文章深入剖析了单层感知器的能力边界,解释了其无法解决异或(XOR)等线性不可分问题的根本原因,并提供了学习率设置、权重初始化等关键避坑指南,帮助初学者直观理解神经网络的基础。

ttt77的博客 1080

SE-0526激光避障雷达扫描传感器输入输出连线方法及PLC联机实例说明

SE-0526激光避障雷达扫描传感器广泛应用于原材料运输与处理、移动装配、托盘或货架运输、产成品自动运输、生产线自动对接,餐厅自助送餐等AGV小车、服务机器人、仓储机器人、无人叉车导航、避障、定位等。 本文重点介绍SE-0526激光避障雷达扫描传感器输入输出连线方法及PLC联机实例说明。

华翔天诚科技 2685

超实用!VS Code配置C/C++开发环境全攻略

本文提供了一份详细的VS Code配置C/C++开发环境全攻略。从MinGW-w64编译器的选择与安装,到VS Code核心扩展的配置,再到tasks.json构建任务与launch.json调试环境的设置,手把手指导初学者完成从环境搭建到高效开发与调试的全过程,帮助开发者快速上手C/C++项目。

weixin_28829479的博客 179

Argoverse数据集可视化/Argoverse-api

argoverse可视化,argoverse-api配制方法

learning_man的博客 9558

2025华为od机试真题B卷【版本管理】Python实现

在 软件版本管理中,版本号由点分割的数字组成,例如 1.2.3 和 2.8。现在,你需要编写一个函数,计算两个版本号之间的可用版本号个数。这里的可用版本号指的是所有满足 version1<x<version2的版本号x的个数。若 version1 >=version2 返回0.,

MISAYAONE的博客 636

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 华为OD机考2025C卷 - 精准核酸检测(Java & Python& JS & C++ & C语言)
下一篇: 华为OD机考2025C卷 - 热点网站统计(Java & Python& JS & C++ & C )
算法大师
算法大师 新星创作者: 算法与数据结构技术领域 新星创作者: 算法与数据结构技术领域
博客等级 码龄5年 1万+粉丝 1658原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

算法大师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值