สมาชิกส่วนใหญ่ (Majority Element)
สมาชิกส่วนใหญ่ในอาร์เรย์ arr ความยาว l คือสมาชิกที่ปรากฏมากกว่า l/2 ครั้ง ดังนั้นจึงมีได้สูงสุดหนึ่งตัว
เราต้องเขียนฟังก์ชัน isMajority() ที่รับอาร์เรย์ arr ที่เรียงเพิ่มขึ้นเป็นอาร์กิวเมนต์แรก และตัวเลขเป็นอาร์กิวเมนต์ที่สอง ค้นหาในอาร์เรย์และคืน true ถ้าตัวเลขนั้นเป็นสมาชิกส่วนใหญ่ มิฉะนั้น false
ตัวอย่าง
ถ้าอาร์เรย์และตัวเลขคือ:
const arr = [5, 5, 5, 12, 15]; const num = 5;
ผลลัพธ์ควรเป็น:
const output = true;
เพราะ 5 ปรากฏ 3 ครั้ง มากกว่า (5 / 2) = 2.5 (ครึ่งหนึ่งของความยาวอาร์เรย์)
เนื่องจากอาร์เรย์เรียงแล้ว ถ้ามีสมาชิกส่วนใหญ่ จะต้องเป็นสมาชิกกลางเสมอ เพราะตัวเลขนั้นต้องครอบคลุมมากกว่าครึ่งอาร์เรย์ เราสามารถใช้ตรรกะนี้ตรวจสอบได้
ตัวอย่างโค้ด
const arr = [5, 5, 5, 12, 15];
const num = 5;
const isMajority = (arr = [], num = 1) => {
const { length } = arr;
if(!length) {
return false;
}
const middle = Math.floor(length / 2);
if(arr[middle] === num) {
return true;
} else {
return false;
}
};
console.log(isMajority(arr, num));
ผลลัพธ์
true