我有一个包含30.000个整数值的数组,我需要计算最大的60个连续元素块。我已经这样做了,它有效,但我不知道是否有更好的方法来做到这一点。现在它花费大约4秒,有30.000点。
$values = array();
$max = 0;
for ($i = 0; $i < 30000; $i++) {
$values[] = rand(0, 1000);
}
for ($i = 0; $i < 29940; $i++) {
$subValues = array_slice($values, $i, 60);
$sum = array_sum($subValues);
$avg = $sum / 60;
$max = ($avg > $max) ? $avg : $max;
}
$maxValues = array_slice($values, $max, 60);