合并乱序区间
给出一个区间的集合,请合并所有重叠的区间。
let arr = [[1,3],[2,6],[8,10],[15,18]] // [ [ 1, 6 ], [ 8, 10 ], [ 15, 18 ] ]
结果
function merge(intervals) { if (!intervals || !intervals.length) return []; intervals.sort((a, b) => a[0] - b[0]); // 按照区间第一位进行排序 let result = [intervals[0]] // 排序之后第一个是最小的 // [[1,3]] for (let i = 1; i < intervals.length; i++) { // 从第二个开始比较 let resultLast = result.length - 1 if (result[resultLast][1] > intervals[i][0]) { // 判断结尾是不是大于开始 result[resultLast][1] = Math.max(result[resultLast][1], intervals[i][1]) // 区间重复就进行合并了 } else { result.push(intervals[i]) // 区间没有重复 } } return result } console.log(merge(arr))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: setState 是同步还异步的?
下一篇: 不要相信一个熬夜的人说的每一句话
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论