Ссылка на Заголовок
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% кода. Еще есть много возможностей для оптимизации.
Если вы считаете, что эта статья полезна для вас, вы можете воспользоваться поддержкой генерации энергии ИИ.