กำหนดอาร์เรย์ของจำนวนเต็ม เราต้องเขียนฟังก์ชันที่รับอาร์เรย์นี้และหาองค์ประกอบที่ปรากฏจำนวนครั้งคี่ (odd number of times) จะมีเพียงหนึ่งจำนวนเต็มที่ปรากฏจำนวนครั้งคี่เสมอ
เราจะแก้ปัญหานี้โดยการจัดเรียงอาร์เรย์ เมื่อจัดเรียงแล้ว เราสามารถวนลูปผ่านอาร์เรย์เพื่อหาองค์ประกอบที่ปรากฏจำนวนครั้งคี่
ตัวอย่าง
const arr = [20, 1, -1, 2, -2, 3, 3, 5, 5, 1, 2, 4, 20, 4, -1, -2, 5];
const findOdd = arr => {
let count = 0;
let last;
arr.sort((a, b) => a - b);
for (let i = 0; i < arr.length; i++) {
if (arr[i] === last) {
count++;
continue;
}
if (count % 2) {
return last;
}
last = arr[i];
count = 1;
}
return last;
};
console.log(findOdd(arr));
ผลลัพธ์
โค้ดนี้จะแสดงผลลัพธ์ดังต่อไปนี้บนคอนโซล:
5