【发布时间】:2015-01-26 00:35:09
【问题描述】:
问题
- 我有固定长度的整数值 FIFO 队列。
- 每次我向其中添加新值时,都会删除最旧的值。
- 队列必须能够在每次插入和删除操作之后告诉它当前最大的值是什么。
问题
有没有比每次循环遍历所有队列元素更好的算法?
接受更新后
由于我的应用程序中的整数域有限,我还在考虑稀疏直方图,它包含队列中给定值的计数。因此,每次值到达时,我都会在直方图中增加其值,并在删除给定值时递减。然后要获得最大/最小,我只需要获得非零计数的第一个/最后一个直方图索引。
【问题讨论】:
-
试试最大堆而不是队列。