js實現時間段沖突

算法思路:

1. 對原始時間段進行排序,按照開始時間從小到大排序;

2. 從第二個時間段開始,判斷當前時間段的開始時間是否在前面的時間段內,如果是則表示時間段沖突,跳過該時間段繼續向后掃描,否則保存該時間段,并將該時間段設置成當前時間段;

3. 重復步驟2,直到掃描完所有的時間段。

示例代碼:


function isTimeConflict(arr) {
  if (arr.length <= 1) {
    return false;
  }
  // 按照開始時間從小到大排序
  arr.sort((a, b) => a.start - b.start);
  let i = 1;
  let cur = arr[0];
  while (i < arr.length) {
    const next = arr[i];
    if (next.start >= cur.start && next.start <= cur.end) {
      // 時間段沖突,繼續往后掃描
      cur = { start: cur.start, end: Math.max(cur.end, next.end) };
    } else {
      // 保存該時間段,并將該時間段設置成當前時間段
      cur = next;
    }
    i++;
  }
  return true;
}
// 測試用例
const arr = [
  { start: 1, end: 4 },
  { start: 2, end: 5 },
  { start: 7, end: 8 },
];
console.log(isTimeConflict(arr)); // true
const arr2 = [
  { start: 1, end: 4 },
  { start: 5, end: 9 },
  { start: 7, end: 8 },
];
console.log(isTimeConflict(arr2)); // false

時間復雜度:O(nlogn),主要是排序的時間復雜度。

主站蜘蛛池模板: 夜夜添无码一区二区三区| 中文字幕无码一区二区三区本日| 乱色熟女综合一区二区三区| 亚洲一区综合在线播放| 日韩a无吗一区二区三区| 国产丝袜无码一区二区三区视频| 国产一区二区不卡老阿姨| 无码乱人伦一区二区亚洲| 后入内射国产一区二区| 国产一区在线mmai| 无码人妻AⅤ一区二区三区| 日韩精品人妻av一区二区三区| 午夜影视日本亚洲欧洲精品一区 | 97精品一区二区视频在线观看 | 一区二区三区在线观看中文字幕| 亚洲一区二区影视| 国产亚洲3p无码一区二区| 成人国内精品久久久久一区| 天码av无码一区二区三区四区| 无码日韩AV一区二区三区| 国内精品视频一区二区三区八戒 | 国产午夜精品一区理论片飘花 | 一区二区三区日韩| 亚洲国产美国国产综合一区二区 | 久久精品国内一区二区三区| 精品无码一区二区三区在线| 国产乱码精品一区二区三区中| 午夜福利一区二区三区在线观看 | 亚洲熟妇av一区二区三区下载 | 无码一区二区三区爆白浆| 中文字幕日韩一区二区不卡| 国产免费一区二区三区| 亚洲Av无码国产一区二区| 久久精品日韩一区国产二区| 在线免费一区二区| 美女视频免费看一区二区| 一本色道久久综合一区| 中文字幕精品一区| 亚洲国产成人久久综合一区77| 国产精品综合一区二区| 亚洲国产精品成人一区|