鉴于不同大象的生命时间,找到最大数量的大象生活的时期

Raj*_*Raj 6 c++

我遇到了一个面试问题:

"考虑到不同大象的生命时间.找出最大数量的大象活着的时期." 例如:
输入:[5, 10],[6, 15],[2, 7]
输出:[6,7](3个大象)

我想知道这个问题是否与'n'个字符串的最长子字符串问题有关,这样每个字符串代表一个时间段的连续范围.

例如: [5,10] <=> 5 6 7 8 9 10

如果没有,那么这个问题的解决方案是什么?我想用C++编写代码.

任何帮助将不胜感激.

Mar*_*som 8

对于每只大象,创造两个事件:大象出生,大象死亡.按日期对事件排序.现在,您可以浏览这些活动,并了解有多少大象活着; 每次达到新的最大值时,记录开始日期,每次从最大记录下降结束日期.

此解决方案不依赖于整数日期.