php中第二大绝对值表单数组

第二大绝对值形式数组

input : array(13, -12, 8, 2, 5)

expected answer : 12

这是我的代码

<?php
function print2largest($arr, $arr_size)
{
    if ($arr_size < 2)
    {
        echo(" Invalid Input ");
        return;
    }     
    $first = $second = PHP_INT_MIN;
    for ($i = 0; $i < $arr_size ; $i++)
    {
        if ($arr[$i] > $first)
        {
            $second = $first;
            $first = $arr[$i];
        }

        else if ($arr[$i] > $second &&
                 $arr[$i] != $first)
            $second = $arr[$i];
    }
    if ($second == PHP_INT_MIN)
        echo("There is no second largest element\n");
    else
        echo("The second largest element is " . $second . "\n");
}     
$arr = array(13, -12, 8, 2, 5);
$n = sizeof($arr);
print2largest($arr, $n);
?>

output i got : 8

解决方法:

它可以通过“php-way”轻松完成:

$arr = array(13, -12, 8, 2, 5);
$absoluteArr = array_map('abs', array_unique($arr));
rsort($absoluteArr);
echo $absoluteArr[1];
上一篇:解决absolute fixed元素在安卓唤起虚拟键盘时,元素被挤上来。


下一篇:css position定位