首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在线时间间隔的合并长度

在线时间间隔的合并长度
EN

Stack Overflow用户
提问于 2014-12-08 16:35:06
回答 1查看 888关注 0票数 1

我需要一个数据结构来存储一组间隔,并允许计算它们的联合长度。

假设在行上有一组间隔,在1n之间有整数结束。最初,它是空的,可以添加或移除间隔。每次操作后,应计算集合中所有时间间隔的合并长度。

如何通过具有O(log n)时间复杂度的段树来实现它以推送、删除和找到长度?节点中应该存储什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-08 17:57:33

在这里存储每个节点中具有最小值的元素的最小值和数目就足够了。添加间隔等于将1添加到范围,而删除间隔则等于将-1添加到范围。工会的长度是:

  1. 如果树根的最小值不是零,则为n
  2. n - c,其中,如果最小值为零,则c是树根的最小值的元素数。 最小值不能为负值(任何点总是由0或更多的间隔覆盖)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27362507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档