php面試題-猴子選大王算法實現(xiàn)

<?php

/**
 * 猴子選大王
 * @param  [type] $data 猴子數(shù)據(jù),默認(rèn)值都為1,排查設(shè)為0, 例: [1,1,1,1,1,1]
 * @param  [type] $m    報數(shù)
 * @return [type]       猴子序號
 */
function selectKing($data, $m)
{
    $count   = $end   = count($data); //猴子個數(shù)
    $current = 0;
    $number  = 1;
    while ($count) {
        if ($data[$current] != 0) {
            //最后一個
            if ($count == 1) {
                break;
            }
            if ($number == $m) {
                $data[$current] = 0; //排除一個
                $number         = 1; //重新報數(shù)
                $count--;            //去掉一個
            } else {
                $number++; //繼續(xù)報數(shù)
            }
        }

        //下一位
        $current++;
        if ($current == $end) {
            $current = 0;
        }
    }

    return $current + 1;
}

$data = [1, 1, 1, 1, 1, 1, 1];
var_dump(selectKing($data, 6));
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容