Рубрики
Uncategorized

Решение для PHP с кодом Leetcode — d118 350. Пересечение двух массивов II

Автор оригинала: David Wong.

Ссылка на Заголовок

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

Если вы считаете, что эта статья полезна для вас, вы можете воспользоваться поддержкой генерации энергии ИИ.