Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การตรวจสอบสมาชิกส่วนใหญ่ในอาร์เรย์ที่เรียงแล้วด้วย JavaScript

สมาชิกส่วนใหญ่ (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