Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ปัญหาห้องประชุม 2 ใน JavaScript


เราจะได้รับอาร์เรย์ของอาร์เรย์ แต่ละอาร์เรย์ย่อยประกอบด้วยสององค์ประกอบที่ระบุเวลาเริ่มต้นและสิ้นสุดของการประชุม

หน้าที่ของเราคือค้นหาจำนวนการประชุมสูงสุดที่บุคคลหนึ่งคนสามารถหลีกเลี่ยงได้เพื่อหลีกเลี่ยงความขัดแย้งของเวลา ฟังก์ชันควรส่งคืนหมายเลขนี้ในที่สุด

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตที่อธิบายเวลาประชุมคือ −

const arr = [[5, 40], [10, 20], [25, 35]];

จากนั้นผลลัพธ์ควรเป็น −

const output = 2;

เนื่องจากไม่สามารถจัดการประชุมทั้งสามได้เนื่องจากเวลาที่ทับซ้อนกัน แต่สามารถเข้าร่วม [10, 20] และ [25, 35] ได้

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [[5, 40], [10, 20], [25, 35]];
const canAttendAll = (arr = []) => {
   const times = new Set();
   const { length } = arr;
   for (let i = 0; i < length; i += 1) {
      for (let j = arr[i][0]; j < arr[i][1]; j += 1) {
         if (times.has(j)) {
            return false;
         } else {
            times.add(j);
         };
      };
   };
   return true;
};
console.log(canAttendAll(arr));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

false