เราจะได้รับอาร์เรย์ของอาร์เรย์ แต่ละอาร์เรย์ย่อยประกอบด้วยสององค์ประกอบที่ระบุเวลาเริ่มต้นและสิ้นสุดของการประชุม
หน้าที่ของเราคือค้นหาจำนวนการประชุมสูงสุดที่บุคคลหนึ่งคนสามารถหลีกเลี่ยงได้เพื่อหลีกเลี่ยงความขัดแย้งของเวลา ฟังก์ชันควรส่งคืนหมายเลขนี้ในที่สุด
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตที่อธิบายเวลาประชุมคือ −
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