【发布时间】:2014-10-19 08:33:43
【问题描述】:
我已经有了解决办法。但我认为它会更优化。所以请给我一个解决方案。并记住不要使用 php 的预定义函数。像 max() 函数。 我知道有很多方法可以找到它,但我想要最好和更好的解决方案。因为我的数组包含超过 10 万条记录,而且需要很多时间。或者有时网站会关闭。
我的代码:
<?php
$array = array('1', '15', '2','10',4);
echo "<pre>";
print_r($array);
echo "<pre>";
$max = 0;
$s_max=0;
for($i=0; $i<count($array); $i++)
{
$a = $array[$i];
$tmax = $max;
$ts_max = $s_max;
if($a > $tmax && $a > $ts_max)
{
$max = $a;
if($tmax > $ts_max) {
$s_max = $tmax;
} else {
$s_max = $ts_max;
}
} else if($tmax > $a && $tmax > $ts_max)
{
$max = $tmax;
if($a > $ts_max) {
$s_max = $a;
} else {
$s_max = $ts_max;
}
} else if($ts_max > $a && $ts_max > $tmax)
{
$max = $ts_max;
if($a > $tmax)
{
$s_max = $a;
} else {
$s_max = $tmax;
}
}
}
echo "Max=".$max;
echo "<br />";
echo "S_max=".$s_max;
echo "<br />";
?>
【问题讨论】:
-
作业问题?
-
数组中可以有重复值吗?另外,你到底为什么不想使用内置函数?
-
是的,鲍勃·布朗,你是对的。
-
您的代码看起来过于复杂...您将如何使用笔和纸来完成?尝试想象它,然后在代码中实现它。
-
抄袭别人的作品叫作弊。如果你无法想出一个创造性的方法来解决这个问题,那么也许你应该选择其他的东西来学习。