美文网首页
区间(时段)重叠判断

区间(时段)重叠判断

作者: TingsLee | 来源:发表于2019-11-20 17:25 被阅读0次

业务中经常遇到判断区间是否重叠的问题:


时间段是否重叠

代码如下:

founction rangeRepeat(array) {
      //判断区间是否重复
      // array: [[start, end], [start, end], ...]
      // end > start
      const concatArr = Array.prototype.concat.apply([], array).sort();
      for (let i = 0; i < concatArr.length; i += 2) {
        const start = concatArr[i];
        const end = concatArr[i + 1];
        const isRangeStartAndEnd = array.some(item => {
          return item[0] === start && item[1] === end
        })

        if(isRangeStartAndEnd) {
          continue
        } else {
          // 有重复区间
          return  true;
        }
      }
      return false;
    }

思路:把区间想象成一个以为数轴。每个区间都是数轴的一部分。将区间的开始和结束值合并成一个数组,然后排序。判断有序数组的2n2n+1项,是否是某一个区间的开始和结束值。如果不是则区间有重叠,否则无重叠。

相关文章

  • 区间(时段)重叠判断

    业务中经常遇到判断区间是否重叠的问题: 代码如下: 思路:把区间想象成一个以为数轴。每个区间都是数轴的一部分。将区...

  • 2020-05-20-贪心算法- 重叠区间问题

    题目描述:计算让一组区间不重叠所需要移除的区间个数。计算最多能组成的不重叠区间个数,然后用区间总个数减去不重叠区间...

  • [day8] [LeetCode] [title435,5]

    435. 无重叠区间 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的...

  • lintcode 插入空间

    给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如...

  • LeetCode 56 [Merge Intervals]

    原题 给出若干闭合区间,合并所有重叠的部分。 样例给出的区间列表 => 合并后的区间列表: 解题思路 首先,把区间...

  • T435、无重叠区间

    给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间...

  • 56、合并区间 (Merge Intervals)

    给出一个区间的集合,请合并所有重叠的区间。 示例 1: 示例 2: java python

  • Leetcode 精选之贪心思想( 无重叠区间)

    题目描述 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于...

  • 435. 无重叠区间

    给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。...

  • LeetCode 56 合并区间

    56. 合并区间 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,...

网友评论

      本文标题:区间(时段)重叠判断

      本文链接:https://www.haomeiwen.com/subject/ddboictx.html