🟢 Easy 🧩 Pattern – Arrays
Given an array which contains even and odd numbers, we need to seperate them by putting the odd numbers first followed by the even numbers.
Example
Input: [1, 3, 2, 5, 9, 4]
Output:[1, 3, 5, 9, 2, 4]
Input: [8, 13, 14, 16, 17, 18, 21]
Output:[13, 17, 21, 8, 14, 16, 18]Code language: JavaScript (javascript)Solution
The oddPointer variable is used to keep track of the index where the next odd number should be placed.
function separateEvenOdd(nums) {
let oddPointer = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] % 2 !== 0) {
const temp = nums[i];
nums[i] = nums[oddPointer];
nums[oddPointer] = temp;
oddPointer++;
}
}
return nums;
}
const nums = [8, 13, 14, 16, 17, 18, 21];
console.log(separateEvenOdd(nums));
// [13, 17, 21, 16, 8, 18, 14]Code language: JavaScript (javascript)Solution with even first
The evenPointer variable is used to keep track of the index where the next odd number should be placed.
function separateEvenOdd(nums) {
let evenPointer = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] % 2 === 0) {
const temp = nums[i];
nums[i] = nums[evenPointer];
nums[evenPointer] = temp;
evenPointer++;
}
}
return nums;
}
const nums = [8, 13, 14, 16, 17, 18, 21];
console.log(separateEvenOdd(nums));
// [8, 14, 16, 18, 17, 13, 21]Code language: JavaScript (javascript)