在一個長度為n的數組里的所有數字都在0到n-1的范圍內。 數組中某些數字是重復的,但不知道有幾個數字是重復的。也不知道每個數字重復幾次。請找出數組中任意一個重復的數字。 例如,如果輸入長度為7的數組{2,3,1,0,2,5,3},那么對應的輸出是第一個重復的數字2。
1.哈希法
2.定義備用數組,作為哈希使用,key是原數組每個元素 value是出現的次數
3.遍歷哈希數組
hash
for i=0i;arr.length;i++
hash[arr[i]]++;
foreach hash as v
return v
?php
function duplicate($numbers, $duplication)
{
// write code here
//這里要特別注意~找到任意重復的一個值并賦值到duplication[0]
//函數返回True/False
$flag=false;
$hash=array();
for($i=0;$icount($numbers);$i++){
$hash[$numbers[$i]]++;//關鍵
}
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);
以上代碼經過測試,希望對你有用,感謝大家對腳本之家的支持。
您可能感興趣的文章:- PHP實現統計一個數字在排序數組中出現次數的方法
- php統計數組元素個數的方法
- PHP統計數值數組中出現頻率最多的10個數字的方法
- PHP統計二維數組元素個數的方法
- php數組函數序列 之array_count_values() 統計數組中所有值出現的次數函數
- PHP源代碼數組統計count分析
- php實現數組中出現次數超過一半的數字的統計方法