07. 合并连续区间

  • Post author:
  • Post category:其他




07.合并连续区间

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]

输出:[[1,6],[8,10],[15,18]]

解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

时间复杂度



O

(

n

l

o

g

n

)

O(nlogn)






O


(


n


l


o


g


n


)






空间复杂度



O

(

l

o

g

n

)

O(logn)






O


(


l


o


g


n


)




  • 对所有区间, 按照左端点从小到大排序.
  • 首先将排序后的第一个区间放入ans数组.
  • 对之后的每一个区间, 依次判断,

    • 若左端点小于ans数组中最后一个区间的右端点, 则合并这两个区间;
    • 否则, 将该区间加入ans数组末尾.

时间复杂度上, 排序的时间复杂度为



O

(

n

l

o

g

n

)

O(nlogn)






O


(


n


l


o


g


n


)





, 遍历区间的时间复杂度为



O

(

n

)

O(n)






O


(


n


)





, 故时间花费主要取决于排序, 即



O

(

n

l

o

g

n

)

O(nlogn)






O


(


n


l


o


g


n


)





.

空间复杂度上, 排序的空间复杂度为



O

(

l

o

g

n

)

O(logn)






O


(


l


o


g


n


)





.



版权声明:本文为weixin_43517650原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。