我有一个解决我的问题的工作解决方案,但现在我想改进它.
考虑数组
3,4,5,9,1,2,8
Run Code Online (Sandbox Code Playgroud)
我需要找到位置上两个元素之间的最大差异i,j这样i < j我想找到第二个元素位于第一个元素之后的两个元素之间的最大差异.
在输入中我给出的答案是7因为8-1 = 7并且8之后1.
该程序有效但当我有一个非常大的数组时,它需要很多时间.我们能改进吗?
function fMax($arr)
{
$sum = $arr[1] - $arr[0];
for($i=0;$i<count($arr);$i++)
{
for($j=$i+1;$j<count($arr);$j++)
{
if($sum < $arr[$j] - $arr[$i])
{
$sum = $arr[$j] - $arr[$i];
}
}
}
return $sum;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢所有答案.我通过codeaddict使用了代码,它运行得很快.