假设有一个股票价格的实时反馈,你如何计算它的一个子集的平均值(比如说过去一周)?
这是一个面试问题我可以想出一个O(n^2)的算法,但是面试官想要一个O(n)的算法。
最佳答案
一个有用的方法是计算数组的累积和。
这意味着累积和数组中的每个条目都是以前所有价格的总和。
这很有用,因为您可以使用一个减法在输入的任何特定子数组上生成和。
注意,当一个新的输入到达时,您只需要1个加法就可以计算新的累积和(因为您只需将新元素添加到旧的累积和中)。
关于algorithm - 实时时间序列的平均子集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46850592/