尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
题解:学而思编程 毕业照
【题目来源】学而思编程毕业照【题目描述】又到了一年毕业季学校里到处都是拍毕业照的人小猴已经和各种朋友拍了一上午现在到了班级合影的时间了。小猴班里一共有N NN名同学现在站成一排其中从左往右数第i ii个人的身高为h i h_ihi​但是现在的队伍看着太难看了我们说一个在好看的队伍中每个人的身高满足h 1 ≤ h 2 ≤ ⋯ ≤ h t − 1 ≤ h t , h t 1 ≥ ⋯ ≥ h n − 1 ≥ h n h_1\le h_2\le \dots \le h_{t-1}\le h_t,h_{t1}\ge \dots \ge h_{n-1}\ge h_nh1​≤h2​≤⋯≤ht−1​≤ht​,ht1​≥⋯≥hn−1​≥hn​其中h 1 , h 2 , … , h t h_1,h_2,\dots,h_th1​,h2​,…,ht​均为奇数h t 1 , h t 2 , … , h n h_{t1},h_{t2},\dots,h_nht1​,ht2​,…,hn​均为偶数。现在小猴想要让拍照的队伍变得好看一些你能帮他算一算最后的队伍是什么样的么【输入】第一行一个正整数N NN表示同学的个数第二行N NN个正整数h 1 , h 2 , … , h N h_1,h_2,\dots,h_Nh1​,h2​,…,hN​表示每个同学的身高。【输出】一行用空格隔开的N NN个正整数表示整理后队伍的身高。【输入样例】5 160 175 138 174 137【输出样例】137 175 174 160 138【核心思想】问题分析给定N NN个同学的身高需要重排成好看的队伍前一段为奇数且非降序后一段为偶数且非升序。这是一个自定义排序问题关键在于设计比较函数实现奇偶分组和各自方向的排序。算法选择自定义比较函数先按奇偶分组奇数在前同奇偶时按指定方向排序标准排序sort配合自定义比较函数一次性完成重排关键步骤初始化读取N NN和身高数组h [ 1.. N ] h[1..N]h[1..N]自定义比较函数cmp(x, y)若x xx和y yy均为奇数返回x y奇数内部升序若x xx和y yy均为偶数返回x y偶数内部降序否则一奇一偶返回x % 2 y % 2奇数在前因为1 0排序并输出sort(h 1, h N 1, cmp)输出排序后的数组时间/空间复杂度时间复杂度O ( N log ⁡ N ) O(N \log N)O(NlogN)排序空间复杂度O ( N ) O(N)O(N)存储数组自定义排序的核心思想多级排序键第一关键字为奇偶性奇数优先第二关键字为数值方向奇数升序、偶数降序比较函数完备性覆盖所有情况奇-奇、偶-偶、奇-偶、偶-奇确保全序关系严格弱序cmp满足传递性和反对称性符合sort要求单趟排序无需先分组再分别排序自定义比较函数一次性完成全局最优排列适用于多条件分组排序类问题比较函数是实现复杂排序规则的关键【算法标签】#其他排序【代码详解】#includebits/stdc.husingnamespacestd;inth[100010];// 存储数组// 自定义比较函数boolcmp(intx,inty){// 如果都是奇数按升序排序if(x%21y%21){returnxy;}// 如果都是偶数按降序排序if(x%20y%20){returnxy;}// 一奇一偶奇数在前因为奇数%21偶数%20returnx%2y%2;// 1 0}intmain(){intn;cinn;// 输入数组长度for(inti1;in;i){cinh[i];// 输入数组元素}// 使用自定义比较函数排序sort(h1,hn1,cmp);// 输出排序结果for(inti1;in;i){couth[i] ;}return0;}【运行结果】5 160 175 138 174 137 137 175 174 160 138
RELATED

相关推荐

python3 -m http.server 临时文件服务器:为什么跑着跑着就断了?

python3 -m http.server 临时文件服务器:为什么跑着跑着就断了?

python3 -m http.server 是 Python 自带的零依赖 HTTP 文件服务器,在当前目录起一个服务,局域网内别人用浏览器或 wget 就能下载文件。临时传个文件特别方便 —— 不用装 nginx,不用配 FTP,一行命令搞定。 但很多人都遇到过同一个坑:服务跑着跑着,过一段时间另一台电脑就访问不…

📅 2026/11/4 20:57:15
题解:学而思编程 零距离

题解:学而思编程 零距离

【题目来源】 学而思编程:零距离 【题目描述】 小猴最近刚刚在数学课上学完负数,老师给小猴布置了一个任务:有 nnn 个整数a1,a2,…,ana_1,a_2,\dots,a_na1​,a2​,…,an​,要求找出其中最接近 000 的数字。如果有多种可能&…

📅 2026/10/29 11:21:17
Sketch设计到代码转换技术实现:Marketch插件架构解析与设计系统集成

Sketch设计到代码转换技术实现:Marketch插件架构解析与设计系统集成

Sketch设计到代码转换技术实现:Marketch插件架构解析与设计系统集成 【免费下载链接】marketch Marketch is a Sketch 3 plug-in for automatically generating html page that can measure and get CSS styles on it. 项目地址: https://gitcode.com/gh_mirrors/…

📅 2026/10/30 11:25:41
MORE NEWS

更多资讯

📰

台州电工证考证含金量有多高?考证前必须知道的5件事

台州电工证考证含金量有多高?考证前必须知道的5件事 你是不是正在为找不到工作发愁?是不是还在为没有特种作业证而焦虑?别急, 台州电工证考证 正是你求职路上最硬的“敲门砖”,它的 含金量…

📰

电工证被拉黑怎么恢复怎么报名

电工证被拉黑怎么恢复怎么报名 你是不是也遇到过这种情况:电工证突然被拉黑,不知道怎么恢复,更不知道怎么报名?别急,今天就来聊聊这个问题,带你一步步解决“电工证被拉黑怎么恢复”和“怎么报名”这两个关键点,特别适合正在周口转岗的你。…

📰

登高电工证好考吗现在多少钱

登高电工证好考吗现在多少钱 你是不是也觉得学历不高,考个证都怕报不上名?别担心,现在登高电工证的报考门槛其实没你想象的那么高。只要你愿意花点时间准备,完全有可能拿下这个证,而且 多少钱…

📰

东方考电工证在哪里考 网上查询外省证怎么转

东方考电工证在哪里考 网上查询外省证怎么转 之前考的证在外省能不能转过来?这几乎是每个准备转行或者正在从事特种作业的人员最关心的问题。特别是像电工证这类高需求证书,很多人在外地工作时考的证,回到老家或新城市后发现无法使用,只能重新报考,既浪…

📰

低压电工证有积分吗报名费多少钱 低压电工证有积分吗怎么考

低压电工证有积分吗报名费多少钱 低压电工证有积分吗怎么考 你学历不高怕报不上名?低压电工证有积分吗?报名费多少钱?这些问题是不是你正纠结的?我就是从一个只有高中学历的工人,一步一步考下来低压电工证,现在在平顶山做房建工程的电工,今天就告诉你…

📰

特种作业你操作证到期换证流程怎么走?官方报名入口全知道

特种作业你操作证到期换证流程怎么走?官方报名入口全知道 你缺的是特种作业操作证,而不是工作机会。现在不少工地、工厂、企业都要求必须持证上岗,尤其是从事电焊、登高、制冷、高压电工等工作的,没有证就等于没资格。别再等了, 特种作业你操作证…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬