この記事では主に、ソートされた配列内の数値の出現数をカウントする PHP の方法を紹介します。これには、二分探索アルゴリズムに基づいて配列内で検索およびカウントするための PHP の関連操作スキルが含まれます。皆さんのお役に立てれば幸いです。
質問
並べ替えられた配列に数値が出現する回数を数えます。
解決策
ソートされた配列なので、二分探索が最も効率的です。見つけたら両側に展開します。
コード
<?php function GetNumberOfK($data, $k) { if(count($data)==0){ return 0; } $index = 0; $low = 0; $high = count($data)-1; $middle = 0; //二分查找找到k的index while($low<=$high){ $middle = ($high+$low)>>1; if($data[$middle]==$k){ $index = $middle; break; } else if($data[$middle]>$k) { $high = $middle -1; }else{ $low = $middle+1; } $index = -1; } // console.log(index); // 如果没找到 if($index==-1){ return 0; } //找到了 分别往左右查找边界 $start = $index; $end = $index; $count = 0; while($data[$start]==$k){ $count++; $start--; } while($data[$end]==$k){ $count++; $end++; } return $count-1; }
関連推奨事項:
並べ替えられた配列内で、指定された数値の出現回数を見つけます。たとえば、[ 1, 2 , 2, 2, 3] in
以上がPHP は、ソートされた配列に数値が出現する回数をカウントします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。