1
給定一個數組A由四個元素的最大遙遠查找元素:如何在一個陣列,其值是從平均
$arr = array(9, 4, -3, -10);
該數組的平均值是(9 + 4 + (−3) + (−10))/4 = 0
。
元素A[2]
的偏差是|(-3) - 0| = |0 - (-3)| = 3
。
元件A[3]
的偏差爲10。陣列A的極端元件中,由於沒有其它的元件具有的偏差大於10
有此數組中沒有其他極端元件。
我具有以下溶液:
<?php
$array = array(9, 4, -3, -10);
$rslt = soln($array);
function soln($A){
$avg = array_sum($A)/count($A);
$eE = 0;
for($i = 0; $i < count($A); $i++){
if (abs($avg - $A[$i]) > $eE):
$eE = $i;
endif;
}
if ((int)$eE > 100000000) {
return -1;
} else {
return (int)$eE;
}
}
但是這種解決方案是不完全正確的基於O(N)和O(升)
我需要找到一種極端的元素的索引。如果存在多個極值,那麼它應該返回其中任何一個的索引 – sanin
,因此只需修改此代碼,將max和min存儲爲max和min的數組,然後存儲相應的索引。而你的問題是「一個元素」而不是「元素」:)。至少你可以使用'array_keys' –