網易前端2020筆試編程題--1.序列轉換


時間限制:C/C++ 1秒,其他語言2秒

空間限制:C/C++ 256M,其他語言512M

小易給你一個包含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);

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM