Skip to content

Latest commit

 

History

History
44 lines (36 loc) · 927 Bytes

0057. 插入区间.md

File metadata and controls

44 lines (36 loc) · 927 Bytes

57. 插入区间

给你一个 无重叠的 ,按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

https://leetcode-cn.com/problems/insert-i/


/**
 * @param {number[][]} intervals
 * @param {number[]} newInterval
 * @return {number[][]}
 */
var insert = function(intervals, newInterval) {
  var left = newInterval[0]
  var right = newInterval[1]
  var placed = false
  var result = []

  intervals.forEach(i => {
    if (i[0] > right) {
      if (!placed) {
        result.push([left, right])
        placed = true
      }
      result.push(i)
    } else if (i[1] < left) {
      result.push(i)
    } else {
      left = Math.min(left, i[0])
      right = Math.max(right, i[1])
    }
  })

  if (!placed) {
    result.push([left, right])
  }

  return result
}