php實現(xiàn)數(shù)組重復(fù)數(shù)字統(tǒng)計實例
在一個長度為n的數(shù)組里的所有數(shù)字都在0到n-1的范圍內(nèi)。 數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個數(shù)字是重復(fù)的。也不知道每個數(shù)字重復(fù)幾次。請找出數(shù)組中任意一個重復(fù)的數(shù)字。 例如,如果輸入長度為7的數(shù)組{2,3,1,0,2,5,3},那么對應(yīng)的輸出是第一個重復(fù)的數(shù)字2。
1.哈希法
2.定義備用數(shù)組,作為哈希使用,key是原數(shù)組每個元素 value是出現(xiàn)的次數(shù)
3.遍歷哈希數(shù)組
hash for i=0i;<arr.length;i++ hash[arr[i]]++; foreach hash as v return v
<?php
function duplicate($numbers, &$duplication)
{
// write code here
//這里要特別注意~找到任意重復(fù)的一個值并賦值到duplication[0]
//函數(shù)返回True/False
$flag=false;
$hash=array();
for($i=0;$i<count($numbers);$i++){
$hash[$numbers[$i]]++;//關(guān)鍵
}
foreach($hash as $k=>$v){
if($v>=2){
$flag=true;
$duplication[0]=$k;
break;
}
}
return $flag;
}
$arr=[2,1,3,0,4];
$res=duplicate($arr,$duplication);
var_dump($res);
var_dump($duplication);
以上代碼經(jīng)過測試,希望對你有用,感謝大家對腳本之家的支持。
- PHP實現(xiàn)統(tǒng)計一個數(shù)字在排序數(shù)組中出現(xiàn)次數(shù)的方法
- php統(tǒng)計數(shù)組元素個數(shù)的方法
- PHP統(tǒng)計數(shù)值數(shù)組中出現(xiàn)頻率最多的10個數(shù)字的方法
- PHP統(tǒng)計二維數(shù)組元素個數(shù)的方法
- php數(shù)組函數(shù)序列 之a(chǎn)rray_count_values() 統(tǒng)計數(shù)組中所有值出現(xiàn)的次數(shù)函數(shù)
- PHP源代碼數(shù)組統(tǒng)計count分析
- php實現(xiàn)數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù)字的統(tǒng)計方法
相關(guān)文章
PHP 異步執(zhí)行方法,模擬多線程的應(yīng)用分析
本篇文章是對PHP 異步執(zhí)行方法,模擬多線程的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Laravel 5框架學(xué)習(xí)之向視圖傳送數(shù)據(jù)(進(jìn)階篇)
上篇文章我們介紹了Laravel5框架中如何向視圖中傳送數(shù)據(jù),今天我們來研究下如何向視圖中傳送array,非常的詳細(xì),推薦給有需要的小伙伴參考下。2015-04-04

