本题要求对数组做按奇偶分组的局部排序,而不是整体排序,也不是按下标奇偶划分。
关键观察:先扫描一遍,收集「当前值为奇数」的下标集合 Iodd,以及「当前值为偶数」的下标集合 Ieven。然后:
给定正整数数组 numbers:所有值为奇数的元素在其原位置集合上做升序重排;所有值为偶数的元素在其原位置集合上做降序重排。注意按「数值奇偶」分组,不是按下标奇偶。
给出整数数组 numbers。约束:数组长度介于 1 与 100 之间;每个元素取值在闭区间 [1,1000]。
返回重排完成后的整型数组。
输入:
[7,4,1,8,3]
输出:
[1,8,3,4,7]
说明:
值为奇数的下标是 0,2,4,数值 7,1,3 升序后写回为 1,3,7。值为偶数的下标是 1,3,数值 4,8 降序后写回为 8,4。得到 [1,8,3,4,7]。
输入:
[4,6,8]
输出:
[8,6,4]
说明:
三个数全是偶数,在原位置上整体降序即可。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.