将一千(1000)个元素输入到数组中(无内存约束)。我们知道,输入元素时,只要输入值,我们就可以通过检查来更新输入值中的最大值。在数组中寻找最大值
但想象一下,如果最大值的位置是某处大约900
如果我从位置取出200元800〜1000, 没有做任何更多的比较,我们应该有下一个最大值。 这意味着在输入数据时我们应该有一个计划来组织数据以某种方式从剩余数据中获取最大值?
删除和插入操作将继续进行,但我们应该在更少的时间内更新最大值,而不需要更少的步骤。 (使用堆栈可能有帮助,是面试官给我的线索)。任何人都请帮助我。
使用二进制最大堆! – skrtbhtngr
这与[寻找最大值](http://stackoverflow.com/questions/30689110/)的缩小版非常相似。主要区别在于,另一个问题是处理1千万(1000万)元素和删除20万(200万)元素。 –
我们是否可以假设删除/添加仅允许在数组的末尾,或者您是否可以从1000的数组中移除元素850到950? – user3386109