活动运行一个多小时.我需要获得最佳的8分钟窗口,其中一些参数是最大的.
例如,每秒测量一个值x.如果我的活动运行了一个小时,我得到36的x值.我需要找到最佳的连续8分钟时间间隔,其中x值是所有其他时间中最高的.
如果我从第0分钟到第8分钟捕获,则可能存在另一个时间范围,如0.4到8.4,其中最大值.粒度是一秒.我们需要考虑每一秒.
请帮我设计一下.
Mar*_*ers 10
什么阻止你尝试各种可能性?3600个值并不多.您可以在O(n*m)时间内浏览它们,其中n表示数据点数,m表示窗口中的点数.
如果要进行优化,可以使用滑动窗口在O(n)中进行优化.在前8分钟内保留x的所有值的队列,以及该8分钟的总数.每次前进一秒钟,您都可以将x的最旧值出列,并从运行总计中减去它.然后将新值x添加到队列中并将其添加到总计中.
但是,对于您所遇到的问题,这种优化似乎不太必要.除非需要额外的性能,否则我建议保持简单.