[特定时间间隔的最大能量]

时间:2017-06-26 14:10:49

标签: algorithm tree

我遇到了一个面试问题 给定开始时间和结束时间以及在此持续时间内传输的能量。 我必须在任何时刻找到最大的能量 例如: 鉴于三个间隔
 (1,5,10)[从1开始,在5结束,此时的能量为10]
 (2,7,14)
 (6,8,16)
 然后,在时间6到7之间的任何时刻的最大能量为30 我的方法:在某种程度上这是区间重叠问题,但由于第三个参数(能量),我无法破解它 在研究方面,我认为它可以通过Interval Tree来解决。我正在寻找一些方法和PseudoCode 谢谢!!。

1 个答案:

答案 0 :(得分:1)

建议的O(nlogn)算法:

  1. 将每个(开始,结束,能量)转换为(开始,能量)和(结束, - 能量)对
  2. 按第一个坐标(时间)对对进行排序
  3. 迭代通过对更新当前能量并跟踪最大值
  4. 当结束时间与开始时间匹配时,您需要小心决定该怎么做 - 这是否算作瞬间高能量?