给定一个长度不小于2的数组arr,实现一个函数调整arr,要么让所有的偶数下标都是偶数,要么让所有的奇数下标都是奇数
注意:1、数组下标从0开始!
2、本题有special judge,你可以输出任意一组合法解!同时可以证明解一定存在
[要求]
时间复杂度为
,额外空间复杂度为
第一行一个整数N。表示数组长度
接下来一行N个整数表示数组内的数
输出N个整数。表示调整后的数组
5 1 2 3 4 5
2 1 4 3 5
样例中的输出保证了奇数下标都是奇数
let readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const lines = [];
rl.on("line", function(line) {
//将输入放到新建的空数组中
lines.push(line);
//判断,如果输入的行数等于某一值时
if (lines.length === 2){
//通过数组索引分别得到数组中每一行的数据,并做相应操作
const num1 = lines[0].split(' ');
const num2 = lines[1].split(' ');
let outArr =new Array(num1[0]);
let odd = 1; // 奇数下标
let even = 0; // 偶数下标
for (let i = 0; i < num1[0]; i++) {
if (num2[i] % 2 == 0) {
outArr[even] = num2[i];
even += 2;
}else{
outArr[odd] = num2[i];
odd += 2;
}
}
console.log(outArr);
rl.close();
}
});