7.26华为OD机试真题 新系统 - 区分奇偶的数组排序 (Java/Py/C/C++/Js/Go)
区分奇偶的数组排序2026 华为OD机试真题 7月26日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解题目描述给定一个非负整数数组nums满足以下两个前提条件数组长度为偶数且 2≤nums.length≤20000数组中恰好有一半元素是偶数另一半元素是奇数请你对该数组进行重构满足以下两个核心要求重构后的数组中所有位于偶数下标下标从 0 开始的元素必须是偶数所有位于奇数下标的元素必须是奇数重构后所有占据偶数下标的偶数元素需按照从小到大的升序排列所有占据奇数下标的奇数元素也需按照从小到大的升序排列返回满足上述所有条件的重构后数组。补充说明数组长度 n 满足 2≤n≤20000且 n%20数组中的元素为非负整数满足 0≤nums[i]≤1000数组中偶数和奇数的数量严格相等各占 n/2 个满足条件的输出数组是唯一的示例1输入4,2,5,7输出2,5,4,7说明偶数元素为[4,2]升序后为[2,4]奇数元素为[5,7]升序后为[5,7]。示例2输入1,3,2,6,8,5输出2,1,6,3,8,5说明偶数元素为[2,6,8]升序后仍为[2,6,8]奇数元素为[1,3,5]升序后仍为[1,3,5]示例3输入9,0,3,4,7,2输出0,3,2,7,4,9说明偶数元素为[0,4,2]升序后为[0,2,4]奇数元素为[9,3,7]升序后为[3,7,9]解题思路核心思想题目要求偶数下标放偶数奇数下标放奇数并且两个位置序列内部都要升序。因此可以先把原数组拆成两个数组偶数数组和奇数数组分别排序后再按下标奇偶交替放回结果数组。因为题目保证偶数和奇数数量相等所以排序后的偶数数组一定能填满所有偶数下标排序后的奇数数组也一定能填满所有奇数下标。算法步骤按示例格式读取一行输入用英文逗号切分得到nums。遍历nums将偶数加入evens奇数加入odds。分别对evens和odds升序排序。创建结果数组ans。依次取排序后的偶数放到0, 2, 4...下标取排序后的奇数放到1, 3, 5...下标。将结果数组按英文逗号拼接输出。复杂度分析设数组长度为n。拆分数组复杂度为O(n)。两个子数组排序总复杂度为O(n log n)。合并结果复杂度为O(n)。总时间复杂度为O(n log n)空间复杂度为O(n)。Javaimportjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.Scanner;publicclassMain{staticint[]solve(int[]nums){// 拆分出所有偶数和奇数分别排序ListIntegerevensnewArrayList();ListIntegeroddsnewArrayList();for(intnum:nums){if(num%20){evens.add(num);}else{odds.add(num);}}Collections.sort(evens);Collections.sort(odds);// 偶数按升序放偶数下标奇数按升序放奇数下标int[]ansnewint[nums.length];for(inti0;ievens.size();i){ans[i*2]evens.get(i);ans[i*21]odds.get(i);}returnans;}publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);Stringlinescanner.hasNextLine()?scanner.nextLine().trim():;String[]partsline.split(,);int[]numsnewint[parts.length];for(inti0;iparts.length;i){nums[i]Integer.parseInt(parts[i].trim());}int[]anssolve(nums);StringBuildersbnewStringBuilder();for(inti0;ians.length;i){if(i0){sb.append(,);}sb.append(ans[i]);}System.out.println(sb.toString());}}Pythondefsolve(nums):# 分别收集偶数和奇数并各自升序排序evenssorted(numfornuminnumsifnum%20)oddssorted(numfornuminnumsifnum%21)# 按偶数下标、奇数下标交替放入结果数组ans[0]*len(nums)foriinrange(len(evens)):ans[i*2]evens[i]ans[i*21]odds[i]returnans lineinput().strip()numslist(map(int,line.split(,)))print(,.join(map(str,solve(nums))))JavaScriptconstreadlinerequire(readline);functionsolve(nums){// 拆分偶数和奇数并分别升序排序constevensnums.filter((num)num%20).sort((a,b)a-b);constoddsnums.filter((num)num%21).sort((a,b)a-b);// 偶数放偶数下标奇数放奇数下标constansnewArray(nums.length);for(leti0;ievens.length;i){ans[i*2]evens[i];ans[i*21]odds[i];}returnans;}constrlreadline.createInterface({input:process.stdin,output:process.stdout,terminal:false});letline;rl.on(line,(input){lineinput.trim();});rl.on(close,(){constnumsline.split(,).map((item)Number(item.trim()));console.log(solve(nums).join(,));});C#includealgorithm#includeiostream#includesstream#includestring#includevectorusingnamespacestd;vectorintsolve(constvectorintnums){// 将偶数和奇数拆开后分别排序vectorintevens;vectorintodds;for(intnum:nums){if(num%20){evens.push_back(num);}else{odds.push_back(num);}}sort(evens.begin(),evens.end());sort(odds.begin(),odds.end());// 偶数填入偶数下标奇数填入奇数下标vectorintans(nums.size());for(inti0;i(int)evens.size();i){ans[i*2]evens[i];ans[i*21]odds[i];}returnans;}intmain(){string line;getline(cin,line);vectorintnums;stringstreamss(line);string item;while(getline(ss,item,,)){nums.push_back(stoi(item));}vectorintanssolve(nums);for(inti0;i(int)ans.size();i){if(i0){cout,;}coutans[i];}coutendl;return0;}Gopackagemainimport(bufiofmtossortstrconvstrings)funcsolve(nums[]int)[]int{// 拆分偶数和奇数后分别排序evens:make([]int,0)odds:make([]int,0)for_,num:rangenums{ifnum%20{evensappend(evens,num)}else{oddsappend(odds,num)}}sort.Ints(evens)sort.Ints(odds)// 按下标奇偶填入对应序列ans:make([]int,len(nums))fori:0;ilen(evens);i{ans[i*2]evens[i]ans[i*21]odds[i]}returnans}funcmain(){scanner:bufio.NewScanner(os.Stdin)line:ifscanner.Scan(){linestrings.TrimSpace(scanner.Text())}parts:strings.Split(line,,)nums:make([]int,0,len(parts))for_,part:rangeparts{value,_:strconv.Atoi(strings.TrimSpace(part))numsappend(nums,value)}ans:solve(nums)out:make([]string,len(ans))fori,value:rangeans{out[i]strconv.Itoa(value)}fmt.Println(strings.Join(out,,))}C语言#includestdio.h#includestdlib.h#includestring.hintcmpInt(constvoid*a,constvoid*b){return*(constint*)a-*(constint*)b;}voidsolve(intnums[],intn,intans[]){// 拆分偶数和奇数并分别排序intevens[20000];intodds[20000];intevenCount0;intoddCount0;for(inti0;in;i){if(nums[i]%20){evens[evenCount]nums[i];}else{odds[oddCount]nums[i];}}qsort(evens,evenCount,sizeof(int),cmpInt);qsort(odds,oddCount,sizeof(int),cmpInt);// 偶数升序放偶数下标奇数升序放奇数下标for(inti0;ievenCount;i){ans[i*2]evens[i];ans[i*21]odds[i];}}intmain(){charline[200000];if(fgets(line,sizeof(line),stdin)NULL){return0;}intnums[20000];intn0;char*tokenstrtok(line,,);while(token!NULL){nums[n]atoi(token);tokenstrtok(NULL,,);}intans[20000];solve(nums,n,ans);for(inti0;in;i){if(i0){printf(,);}printf(%d,ans[i]);}printf(\n);return0;}完整用例用例14,2,5,7用例21,3,2,6,8,5用例39,0,3,4,7,2用例42,1用例58,6,4,2,1,3,5,7用例610,9,8,7,6,5,4,3用例70,1000,999,1用例812,11,12,11,10,9,8,7用例914,13,2,1,6,5,10,9,8,7,4,3用例1020,18,16,14,12,10,1,3,5,7,9,11文章目录区分奇偶的数组排序题目描述示例1示例2示例3解题思路核心思想算法步骤复杂度分析JavaPythonJavaScriptCGoC语言完整用例用例1用例2用例3用例4用例5用例6用例7用例8用例9用例10

相关新闻

PHP . vs PHP . 开发者完整对比指南

PHP . vs PHP . 开发者完整对比指南

PHP . vs PHP . 开发者完整对比指南 引言在 PHP 开发中,.(点号)是最常用的符号之一,但它可以代表多种不同的概念:字符串连接运算符、对象方法调用(->)、命名空间分隔符(\&#xf…

2026/7/28 16:57:42 阅读更多 →
本地大模型部署性能优化:解决卡顿与显存溢出问题

本地大模型部署性能优化:解决卡顿与显存溢出问题

在本地部署大模型并接入 Hermes Agent 的过程中,最让人头疼的不是环境配置或模型下载,而是运行时的卡顿、响应变慢和显存溢出问题。很多开发者好不容易把模型跑起来,却在长期使用时发现性能逐渐下降,甚至直接崩溃。这些问题往往不…

2026/7/28 16:57:42 阅读更多 →
Kimi K3、Unlimited OCR包揽全球前二,中国开源模型持续刷屏海外

Kimi K3、Unlimited OCR包揽全球前二,中国开源模型持续刷屏海外

中国AI 开源模型持续引发全球开发者关注,创新成果正在集中涌现。7月27日晚,月之暗面正式开源 Kimi K3 完整模型权重,随即登上国际开源AI模型社区Hugging Face总趋势榜第一,紧随其后的则是多日位列榜首的百度开源模型 Unlimited OC…

2026/7/28 16:57:42 阅读更多 →

最新新闻

GetQzonehistory:3步完成QQ空间数据备份的终极解决方案

GetQzonehistory:3步完成QQ空间数据备份的终极解决方案

GetQzonehistory:3步完成QQ空间数据备份的终极解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心那些珍贵的QQ空间记忆会随时间流逝而消失?GetQ…

2026/7/28 17:08:46 阅读更多 →
微信聊天记录永久保存终极指南:3步完成数据备份与个性化分析

微信聊天记录永久保存终极指南:3步完成数据备份与个性化分析

微信聊天记录永久保存终极指南:3步完成数据备份与个性化分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…

2026/7/28 17:08:46 阅读更多 →
如何高效获取B站视频的完整评论数据?智能爬虫工具助你轻松搞定数据分析难题

如何高效获取B站视频的完整评论数据?智能爬虫工具助你轻松搞定数据分析难题

如何高效获取B站视频的完整评论数据?智能爬虫工具助你轻松搞定数据分析难题 【免费下载链接】BilibiliCommentScraper B站视频评论爬虫 Bilibili完整爬取评论数据,包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数 项目地址: https://gitcode.…

2026/7/28 17:08:46 阅读更多 →
C语言随机数生成原理与实践指南

C语言随机数生成原理与实践指南

1. 为什么需要随机数生成?在编程实践中,随机数生成是个看似简单却暗藏玄机的基础功能。我十年前刚学C语言时,以为随机数就是随便取的数,直到在开发一个抽奖程序时发现每次运行结果都一样,才意识到问题的严重性。那次教…

2026/7/28 17:08:46 阅读更多 →
Claude Code 官方内部团队最佳实践!

Claude Code 官方内部团队最佳实践!

Claude Code 官方内部团队最佳实践! 引言在 AI 辅助编程日益普及的今天,Claude Code 作为 Anthropic 推出的强大编码助手,已经被无数开发者用于加速开发、调试代码和生成文档。然而,真正发挥其潜力并非简单地把需求丢给 AI 就可以…

2026/7/28 17:08:46 阅读更多 →
彩笔运维勇闯机器学习--拟合

彩笔运维勇闯机器学习--拟合

彩笔运维勇闯机器学习–拟合 前言:从运维到机器学习的奇幻旅程作为一名资深的“彩笔运维”,我每天的工作就是盯着服务器监控面板,处理报警、重启服务、排查网络问题。直到有一天,老板扔给我一堆历史流量数据,说&#x…

2026/7/28 17:07:45 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻