通过率 39% · 提交 170 · 通过 66
小慕正在组织一场班级活动,需要给一队小朋友排队。这些小朋友身高各不相同,小慕希望队伍按照“高”“矮”“高”“矮”的顺序交替排列。我们用正整数数组表示这队小朋友的身高,例如数组{5, 3, 1, 2, 3}。 在排列中,每个“高”位置上的小朋友要比相邻的小朋友高或者相等;每个“矮”位置上的小朋友要比相邻的小朋友矮或者相等。小慕希望小朋友们移动的总距离尽可能小,队伍从第一个位置开始就是“高”位。请输出最小的。 例如,对于队伍{5, 3, 1, 2, 3},排列{5, 1, 3, 2, 3}是一个可行的结果。而{5, 2, 3, 1, 3}虽然也满足“高”“矮”“高”“矮”的顺序,但小朋友们的移动距离更大,因此不是最优解。 移动距离的定义如下:如果某位小朋友从第i位移动到第j位,移动距离为|i - j|。例如,第二位小朋友移到第三位小朋友后面,移动距离为1;若移动到第四位小朋友后面,移动距离为2。
这类题属于华为 OD 机考真题方向中「100分 / 2023B」方向的高频题型,通常考察对「100分 / 2023B」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
排序前的小朋友,以英文空格的正整数:4 3 5 7 8 注:小朋友<100个
排序后的小朋友,以英文空格分割的正整数:4 3 7 5 8 备注: 4 (高) 3 (矮) 7 (高) 5 (矮) 8 (高) ,输出结果为最小移动距离,只有5和7交换了位置,移动距离都是1。
示例 1
输入示例
1 1 1 1 1
输出示例
1 1 1 1 1
相邻位置可以相等
示例 2
输入示例
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
xxx
输出示例
[]
出现非法参数情况,返回空数组
示例 3
输入示例
4 1 3 5 2
输出示例
4 1 5 2 3
时间限制 1000 ms · 内存限制 128 MB
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有