Sort Even and Odd Indices Independently
EasyArraySorting
Solution
export function sortEvenOdd(nums: number[]): number[] {
const n = nums.length;
const evens = nums.filter((_, i) => i % 2 === 0).sort((a, b) => a - b);
const odds = nums.filter((_, i) => i % 2 === 1).sort((a, b) => b - a);
const answer: number[] = [];
for (let i = 0; i < n; i++) {
if (i % 2 === 0) {
answer.push(evens[i / 2]);
} else {
answer.push(odds[(i - 1) / 2]);
}
}
return answer;
}