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