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

K0051. 魔法交错之力

简单通过率 77% · 提交 79 · 通过 61
双指针模拟

小慕正在开发一套基于混沌之力的魔法编织系统。在系统中,有一组神秘的元素数组,由相同数量的“”(正整数)和“”(负整数)组成,排列得错综复杂。为了激活古老的交错之阵,小慕需要重新排列这些元素,使其满足以下规则: 1. 光明元素开头,且任意相邻两个元素的属性(正负)必须相反; 2. ,即不能打乱同属性元素的先后顺序。 请你帮助小慕完成这个魔法任务,找出符合要求的最终排列。

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

输入描述

第一行输入一个整数 `n`,表示数组 `nums` 的长度。 第二行输入 `n` 个整数,表示数组 `nums`,由等数量的正整数与负整数组成。 - `2 <= n <= 2000` - `1 < |nums[i]| < 100000` - `n` 是偶数

输出描述

输出一行 `n` 个整数,表示经过魔法编织后的数组。

示例

示例 1

输入

4
-1 1 -3 5

输出

1 -1 5 -3

示例 2

输入

6
-22 1 -3 -40 47 4

输出

1 -22 47 -3 4 -40

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

看不懂题目?点开图解
魔法交错之力 - 图解示例 原始数组: -1 1 -3 5 按规则重排 (正数开头,正负交替) 结果数组: 1 -1 5 -3 正数顺序:1 → 5(保持原序) 负数顺序:-1 → -3(保持原序) 规则: ① 第一个元素必须是正数(光明元素) ② 相邻元素正负交替 ③ 同属性元素保持原数组中的先后顺序
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「魔法交错之力」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。