Ссылка на Заголовок
350. Пересечение двух массивов II
Анализ названия
Возвращает пересечение заданного массива.
размышляющий
Начните с большего массива, чтобы выяснить, существует ли элемент в другом массиве и является ли его число меньше или равно текущему массиву. Если да, то он заполняется в массив пересечений.
Окончательный код
class Solution {
/**
* @param Integer[] $nums1
* @param Integer[] $nums2
* @return Integer[]
*/
function intersect($nums1, $nums2) {
$a1 = count($nums1);
$a2 = count($nums2);
$c1 = array_count_values($nums1);
$c2 = array_count_values($nums2);
$c = $c1;
$other = $c2;
if($a2>$a1){
$c = $c2;
$other = $c1;
}
$inter = [];
foreach($c as $v => $a){
if(isset($other[$v])){
$inter = array_pad($inter, count($inter) + min($a, $other[$v]), $v);
}
}
return $inter;
}
}Эта проблема преодолела только 35% кода. Еще есть много возможностей для оптимизации.
Если вы считаете, что эта статья полезна для вас, вы можете воспользоваться поддержкой генерации энергии ИИ.