给定一个长度不小于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(); } });