一种按排序顺序保持元素的数据结构,支持快速插入和计算连续元素之间的最大差异
A data structure which keeps elements in sorted order, supports fast insertion and calculation of maximum difference between consecutive elements
我可以将元素存储在STL集中,用于O(logN)插入和计算O(NlogN)中的最大连续差。有没有更快的方法。我不想要密码。只是实现这个DS的一些想法。谢谢你的帮助。
只需围绕STL集编写一个包装器。每次插入时,在插入之后,获取下一个最高关键字并计算差值。如果它大于当前的最大值,请将其替换并存储添加到此最大值的密钥。
插入仍然是O(logn)。得到的最大值是O(1)。
删除关键点时,请查看它是否在计算最大差异时使用的关键点之一。如果是,则必须使最大值无效,然后找到新的最大值。只需按排序顺序浏览所有元素,并保持最大运行量。迭代结束时,您将知道O(n)中的最大值。
所以在最坏的情况下删除取O(n)。
相关文章:
- 将二维数组的所有元素插入到一维数组中
- 如何将元素插入和迭代到这种映射.C++
- 无法在构造函数中执行设置元素插入
- 将数组的元素插入映射的时间复杂度是多少?
- 如何将元素插入到标准::地图的共享指针中?
- 如何将 n 个连续元素插入到元素类型不可复制的 std::vector 中?
- 将元素插入链接列表
- 创建一个函数以在给定位置将元素插入到列表中
- 我可以在一行代码中将向量中与条件匹配的所有元素插入到集合中吗?
- 为什么我不能将元素插入数组中的列表?
- 将多个偏移量的多个元素插入到一个矢量中
- 将元素插入排序数组
- 使用算法中的插入函数将元素插入空容器中,未给出预期的结果
- 使用动态分配创建数组并将元素插入其中
- 将元素插入字符串集 c++ 的向量中
- 如何将元素插入独特指针的多维矢量中
- 通过引用同一向量的元素插入到向量中
- 如何将元素插入 BST
- 如何将元素插入矢量的开头
- STL和元素插入中列表的动态分配