最近準備記錄一下在leetcode刷到的演算法題和在面試中遇到的一些題目
題目:有兩個陣列[1,2,5,11,32,15,77]和[99,32,15,5,1,77,77]兩個陣列,寫段程式找出它們共同都擁有的數
解法一: 利用迴圈去一對一匹配,最後去重
function getPublicNumber($a,$b){
$a_length = count($a);
$b_length = count($b);
$arr = [];
for ($i = 0; $i < $a_length; $i++){
for ($j = 0; $j < $b_length; $j++){
if ($a[$i] == $b[$j]) $arr[] = $a[$i];
}}
return array_unique($arr);
}
解法二:利用PHP內建函式
return array_intersect($a,$b);
解法三:利用PHP陣列函式
function getPublicNumber($a,$b) {
$a = array_unique($a);
$b = array_unique($b);
foreach($a as $k => $v){
if (!in_array($v,$b)){
unset($a[$k]);
}
}
}
return $a;
歡迎各位留言補充更多的解法
本作品採用《CC 協議》,轉載必須註明作者和本文連結