本文最后更新于571 天前,其中的信息可能已经过时,如有错误请发送邮件到1986413837@qq.com
题目要求如下 简单来说就是让重合的区间合并起来

思路
1.将区间按左端start大小排列 方便操作
可以直接使用数组的sort方法 不过需要定义sort的比较函数
arr.sort((a,b)= > a[0] – b[0] ) 升序排列
2.设置prev区间和curr区间 判断这两个区间是否重合
因为已经按照区间左侧大小升序排列 判断区间是否重合时只需要考虑前后两个区间的情况 也就是比较前区间的右侧和当前区间的左侧
如果后者小于等于前者 说明需要合并 将前区间的右值置为这两个区间右值的最大值 而当前区间会被弃用(下一次循环后自动移动到下一个区间)
[1,6] [2,7] — >[1,7] [1,5] [2,4] — >[1,5]
如果后者大于前者 说明不需要合并 将前区间推入到已经准备好的数组里 并更新prev区间 最后会剩余一个prev区间未被推入 我们在循环结束后单独推入即可
最后代码贴在这里

(PS:JS写算法真挺爽的 感觉舒服多了 很直观)
继续加油!!!