亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在給定整數值的給定數組中查找給定整數的后繼者和前任者

在給定整數值的給定數組中查找給定整數的后繼者和前任者

PHP
墨色風雨 2023-06-24 18:19:54
假設我有一個這樣的數組:[12,3,4,5,8,9,11,20]給定數字 7,那么數組中的前任/后繼將是 5/8 如何有效地找到這些數字?目前我的解決方案只是通過比較來尋找繼任者。
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

您需要迭代數組并比較每個數字,然后保存數字(如果它比舊數字更接近您的針):


function precessorAndSuccessor(array $numbers, int $needle){

    $pre = NULL;

    $suc = NULL;

    foreach($numbers as $number){

        if($number < $needle){

            if($pre === NULL || $pre < $number){

                $pre = $number;

            }

        }elseif($number > $needle){

            if($suc === NULL || $suc > $number){

                $suc = $number;

            }

        }

    }

    return [

        "predecessor" => $pre,

        "successsor" => $suc

    ];

}

``


查看完整回答
反對 回復 2023-06-24
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

如果對數組進行排序,則只需運行并檢查:


$num = 7;

$pre = $suc = false;

sort($array);


foreach($array as $v) {

    if($v < $num) { $pre = $v; }

    if($v > $num) { $suc = $v; break; }

}


查看完整回答
反對 回復 2023-06-24
  • 2 回答
  • 0 關注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號