AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

K0005. 魔法阵数字的奇偶排序法则

简单通过率 67% · 提交 165 · 通过 110
排序模拟双指针

小慕在整理一份数字项目报告时,发现数据需要按照特定规则重新排列。这些数字分为 ,小慕需要遵循以下规则: 1. 奇数规则:奇数按 排列。 2. 偶数规则:偶数按 排列。 3. 位置不变:每个数字的奇偶性必须与原数据中的位置保持一致。 小慕的任务是对给定的数字序列进行重新排序,使其满足上述规则。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行输入一个整数 `n`,表示数组的长度,满足 `1 ≤ n ≤ 10^5`。 第二行输入一个长度为 `n` 的整数数组 `magicArray`,表示魔法阵的初始排列,每个数字为不超过`10^5`的非负整数。

输出描述

输出一个长度为 `n` 的整数数组,表示重新排序后的魔法阵。

示例

示例 1

输入

6
5 2 3 8 1 4

输出

1 8 3 4 5 2

说明:- 奇数部分:[5, 3, 1] 按升序变为 [1, 3, 5]。 - 偶数部分:[2, 8, 4] 按降序变为 [8, 4, 2]。 - 原位置顺序保持不变,最终结果为 [1, 8, 3, 4, 5, 2]。

示例 2

输入

4
2 4 6 8

输出

8 6 4 2

示例 3

输入

4
1 3 5 7

输出

1 3 5 7

说明:- 全部为奇数,直接按升序排列为 [1, 3, 5, 7]。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
魔法阵数字奇偶排序奇数偶数升序降序原数组:5 2 3 8 1 4结果:1 8 3 4 5 2
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「魔法阵数字的奇偶排序法则」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。