時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 256M,其他語言512M 小易給你一個包含n個數字的數組。你可以對這個數組執行任意次以下交換操作: 對於數組中的兩個下標i,j(1<=i,j<=n),如果為奇數,就可以交換和。 現在允許你使用操作次數不限,小易希望你能求出在所有能通過 ...
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 256M,其他語言512M
小易給你一個包含n個數字的數組。你可以對這個數組執行任意次以下交換操作:對於數組中的兩個下標i,j(1<=i,j<=n),如果為奇數,就可以交換和。 現在允許你使用操作次數不限,小易希望你能求出在所有能通過若幹次操作可以得到的數組中,字典序最小的一個是什麼。
輸入描述:
第一行一個整數n;
第二行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);