У меня есть рабочее решение для моей проблемы, но теперь я хочу улучшить его.
Рассмотрим массив
3,4,5,9,1,2,8
Мне нужно найти максимальную разницу между двумя элементами в положении i
и j
так, что i < j
, то есть я хочу найти максимальную разницу между двумя элементами, где 2-й элемент идет после 1-го элемента.
На входе, который я дал, ответ 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;
}
Большое спасибо за все ответы.Я использовал код по codeaddict, и он работает быстро.