JavaScript 中的会议室 2 问题


我们将得到一个数组的数组,每个子数组由两个元素组成,指示会议的开始和结束时间。

我们函数的任务是找出一个人可以参加的最大会议数量,避免时间的冲突。该函数最终应该返回此数字。

例如 −

如果描述会议时间的输入数组是 −

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

更新于: 27-2-2021

287 次浏览

开启您的职业生涯

完成课程获得认证

开始
广告