网易前端2020笔试编程题--1.序列转换

时间限制:C/C++ 1秒,其余语言2秒数组

空间限制:C/C++ 256M,其余语言512Mspa

小易给你一个包含n个数字的数组 。你能够对这个数组执行任意次如下交换操做:
对于数组中的两个下标i,j(1<=i,j<=n),若是 为奇数,就能够交换 a_ia_j
 
如今容许你使用操做次数不限,小易但愿你能求出在全部能经过若干次操做能够获得的数组中,字典序最小的一个是什么。

输入描述:
第一行一个整数n;
第二行n个整数
a_1,a_2,..,a_n
,表示数组,每两个数字之间用一个空格分隔。
输入保证

输出描述:
n个整数,每两个整数之间用一个空格分隔,表示获得的字典序最小的数组。


解答思路:
1.只要有任意两值和为奇数则可互相交换,则两值必为一奇一偶,再排序
2.注意输入输出,字符串数组,字符串数字的相互转化

const n = readline();
const line = readline();
let lines = line.split(' ');
for (let i = 0; i < n; i++) {
    lines[i] = parseInt(lines[i]);
};
const odd = lines.some(item => (
    (item % 2) == 1
));
const even = lines.some(item => (
    (item % 2) == 0
))

if (odd && even) {
    lines.sort((a, b) => (a - b));
}

let newlines = lines.join(' ');
console.log(newlines);
相关文章
相关标签/搜索