PHP實現(xiàn)統(tǒng)計一個數(shù)字在排序數(shù)組中出現(xiàn)次數(shù)的方法
本文實例講述了PHP實現(xiàn)統(tǒng)計一個數(shù)字在排序數(shù)組中出現(xiàn)次數(shù)的方法。分享給大家供大家參考,具體如下:
題目
統(tǒng)計一個數(shù)字在排序數(shù)組中出現(xiàn)的次數(shù)。
題解
既然是排序數(shù)組,使用二分查找是效率最高的。找到之后再向兩側(cè)拓展一下。
代碼
<?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; }
PS:這里再為大家推薦2款功能類似的統(tǒng)計工具(JS實現(xiàn))供大家參考使用:
在線字數(shù)統(tǒng)計工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計與編輯工具:
http://tools.jb51.net/code/char_tongji
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php程序設(shè)計算法總結(jié)》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
php中使用Imagick實現(xiàn)圖像直方圖的實現(xiàn)代碼
玩過單反相機的人應(yīng)該都知道圖像直方圖(Image Histogram),簡單點說,它通過計算每個色階在總像素中所占的比例來反映圖像的曝光情況。2011-08-08PHP獲取redis里不存在的6位隨機數(shù)應(yīng)用示例【設(shè)置24小時過時】
這篇文章主要介紹了PHP獲取redis里不存在的6位隨機數(shù)的方法,可設(shè)置24小時過時限制,涉及php字符串及數(shù)據(jù)庫相關(guān)操作技巧,需要的朋友可以參考下2017-06-06php將html轉(zhuǎn)成wml的WAP標記語言實例
這篇文章主要介紹了php將html轉(zhuǎn)成wml的WAP標記語言的方法,實例分析了php實現(xiàn)標簽的轉(zhuǎn)換與過濾的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-07-07將CMYK顏色值和RGB顏色相互轉(zhuǎn)換的PHP代碼
本節(jié)主要介紹了將CMYK顏色值和RGB顏色相互轉(zhuǎn)換的PHP代碼,需要的朋友可以參考下2014-07-07php根據(jù)用戶語言跳轉(zhuǎn)相應(yīng)網(wǎng)頁
這篇文章主要介紹了php根據(jù)用戶語言跳轉(zhuǎn)相應(yīng)網(wǎng)頁的方法,主要區(qū)分國內(nèi)國外,感興趣的小伙伴們可以參考一下2015-11-11淺析php如何實現(xiàn)爬取數(shù)據(jù)原理
在本篇文章中,小編給大家分享了關(guān)于php如何實現(xiàn)爬取數(shù)據(jù)的原理知識點,有興趣的朋友們參考下。2018-09-09