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