华为面试题: 高矮个子排队
文章目录
- 题目
- 代码:
题目
现在有一队小朋友,他们高矮不同,
我们以正整数数组表示这一队小朋友的身高,如数组{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.
示例一:
输入
4 1 3 5 2
输出
4 1 5 2 3
示例二:
输入
1 1 1 1 1
输出
1 1 1 1 1
说明:相邻位置可以相等
示例三:
输入:
xxx
输出
[]
说明:出现非法参数情况,返回空数组
代码:
#include<iostream>
#include<vector>
using namespace std;
int main(){vector<int> cap;int tmp;while(cin >> tmp){cap.push_back(tmp);char c = cin.get();if(c == '\n') break;if(c != ' '){cout << endl;return 0;}}int len = cap.size();for(int i = 0; i < len; ++i){if(i % 2 == 0 && i < len - 1 && cap[i] < cap[i + 1]) swap(cap[i],cap[i + 1]);if(i % 2 == 1 && i < len - 1 && cap[i] > cap[i + 1]) swap(cap[i],cap[i + 1]);i != 0 && cout << " ";cout << cap[i];}cout << endl;return 0;
}
华为面试题: 高矮个子排队相关推荐
- 【华为机试真题 Python实现 】高矮个子排队
文章目录 前言 题目描述 示例 1 示例 2 示例 3 参考代码 前言 <华为机试真题 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期 ...
- 【华为机试真题 C++】高矮个子排队-100
[编程题目 |100分]高矮个子排队[2021 H1,H2, 2022 Q1 考试题] 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++262144K,其他语言524288K 64bi ...
- 【华为机试真题 JAVA】高矮个子排队-100
[编程题目 |100分]高矮个子排队[2021 H1,H2, 2022 Q1 考试题] 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++262144K,其他语言524288K 64bi ...
- 【华为机试真题详解】高矮个子排队
文章目录 前言 题目描述 示例 1 示例 2 示例 3 题目分析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...
- 【100%通过率】华为OD机试真题 C++ 实现【高矮个子排队】【2023 Q2 | 100分】
所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 现在有一队小朋友,他们高矮不同,,我们以正整数数 ...
- 华为OD机试 - 高矮个子排队
题目描述 现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}. 我们现在希望小朋友排队,以"高""矮"&quo ...
- 【华为机试真题Python】高矮个子排队
题目描述 现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}. 我们现在希望小朋友排队,以"高""矮"&quo ...
- 华为od机考真题-高矮个子排队,算法第九讲-高频真题解析 II
while 1:try:nums = input().split()# 非法输入if not "".join(nums).isdigit():print
- 【python练习题 03】高矮个子排队
题目 现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}. 我们现在希望小朋友排队,以"高""矮"" ...
最新文章
- 中国行政区划信息JS库china-location
- PLSQL Developer连接oracle数据库安装及配置
- 聚簇索引、非聚簇索引、普通索引、唯一索引
- 如何利用结构化思维写好分析报告?
- CCF201912-1 报数
- lintcode-medium-Longest Common Substring
- Sharepoint Solution Gallery Active Solution时激活按钮灰色不可用的解决方法
- iOS sign in with Apple 苹果ID登录
- 进化树构建的方法原理及检验
- flex: 1到底是什么意思?
- JSK-布设光钎-Kruscal最小生成树-并查集-图的连通性
- 如何撰写和发表SCI论文
- JavaScript变量定义以及数据类型划分(笔记)
- 怎么制作书单视频?一款好用的制作软件教程
- 华山论剑闲谈iOS中闪光灯的使用
- RelativeLayout(相对布局)
- 使用苹果的地图与定位
- 解决win10在安装Android-studio时提示HAXM无法安装问题
- 3D语音天气球(源码分享)——完结篇
- mysql报ascii 0_导入mysql文件提示“ASCII \'\\0\' appeared in the statement”
热门文章
- CSAPP(深入理解计算机系统)
- Win2k3架设PPPOE服务器方法(RASPPPOE)
- 名编辑电子杂志大师教程 | 如何制作手机版电子杂志
- Java—输入数字星期,输出英文(switch语句)
- 4.4-4.7网络模型、协议
- 软件需求分析-原理、模型与误区
- Qt之QUdpSocket定时器网络广播
- 计算机考试一级表格考试题,计算机一级Word 表格考试题
- 一份数据科学“必备”的数学基础清单
- 使用QT SDK 1.1 Qt Creator 2.0.9创建symbian sisx安装包