Sort Array By Parity II
EasyArrayTwo PointersSorting
Solution
export function sortArrayByParityII(nums: number[]): number[] {
const swap = (i: number, j: number) => {
[nums[i], nums[j]] = [nums[j], nums[i]];
};
const n = nums.length;
let [even, odd] = [0, 1];
while (even < n && odd < n) {
while (even < n && nums[even] % 2 === 0) {
even += 2;
}
while (odd < n && nums[odd] % 2 === 1) {
odd += 2;
}
if (even < n && odd < n) {
swap(even, odd);
}
}
return nums;
}