解题思路:先找重合时间段的start,再找重合时间段的end。
数组[[4,7],[10,14]]
先找重合时间段的start。
如果插入时间段为[8,11],不和[4,7]重合,考虑下一个元素
如果插入时间段为[5,13],在[4,7]之间,找到重合时间段的start,即为这两个时间段较小者。重合时间段的end,即为两者的较大者,但这并不是最终结果。这时标记start已找到,进行下一次迭代,寻找end。
如果插入时间段为[1,2],则不重合,单独插入即可
如果插入时间段为[1,5],则尾部重合,重合时间段的start为1,end暂为两个时间段end较大者,标记start已找到。进行下一次迭代,寻找end。
代码如下:
1 | /** |
运行结果:26ms,超过13.30%