0

所以,我需要找出索引数组的任何两个随机值之间的最大可能差异,我不确定我的答案是否正确,因为你知道这对于这个问题的重要性来说太简单了:

function($array)
{
 asort($array); 
 $diff = $array(sizeof($array) - 1) - $array(0);
 return $diff; 
}

我确信这是正确的,然后我总是有我的怀疑!

4

2 回答 2

1

只是为了让您了解逻辑,这是一种手动执行此操作的方法:

$myarray = array(
  'this' => 2, 
  'that' => 14, 
  'them' => -5, 
  'other' => 200, 
  'nothing' => 42, 
  'somethingelse' => 1, 
  'you' => 10, 
  'me' => 30);

foreach ($myarray as $key => $value) {
  if (!isset ($min) || $value < $min) { $min = $value; }
  if (!isset ($max) || $value > $max) { $max = $value; }
}

$diff = $max - $min;
echo $diff;
于 2012-06-21T20:27:11.340 回答
1

你是对的,你会发现最大的差异是在最大值和最小值之间。但是,您可以通过简单地扫描数组以查找最小值和最大值而不进行排序来更有效地实现这一点(O(N) 而不是 O(N log N))。

于 2012-06-21T19:44:24.100 回答