網易前端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);
相關文章
相關標籤/搜索