0

我有一个包含 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);
4

0 回答 0