【发布时间】:2013-09-29 08:23:47
【问题描述】:
我有一个音频输入流,它接收当前播放音乐的音量。 然后在最新卷的某个窗口大小(范围从 5 到 40)上,我想跟踪窗口内的最高值和最低值。所以在每次迭代中,删除最旧的值并添加最新的音量读数。
也就是说,如果我以 5 个窗口运行程序 8 次迭代,结果会是这样。 只有低值和高值很重要。
加2
2
加4个
2 4
加 3
2 3 4
加2
2 2 3 4
加7
2 2 3 4 7
-从列表中删除前 2 个添加 9
2 3 4 7 9
删除4个,添加5个
2 3 5 7 9
删除 3 个,添加 2 个
2 2 5 7 9
等
最有效的方法是什么?使用什么类型的集合?
编辑请注意,此循环在单独的线程上不断运行
值是浮点数
【问题讨论】:
-
这里有 2 对操作。最小\最大和添加\删除。哪一种出现频率更高??
-
在每次迭代中添加和删除一个数字,然后找到最小值和最大值,它们出现的数量相同