两个数组的交集

题意:

给定两个数组 nums1nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例 1:

输入 :nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

示例 2:

输入 :nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出 :[9,4]
解释:[4,9] 也是可通过的

提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

来源: https://leetcode.cn/problems/intersection-of-two-arrays/description/

解题方法:

方法一:使用PHP内置函数,取交集再去重

php 复制代码
// PHP内置函数
function intersection($nums1, $nums2) {
    return array_unique(array_intersect($nums1,$nums2));
}

方法二:暴力使用双循环

php 复制代码
// 双层嵌套循环
function intersection($nums1, $nums2) {
    $intersect_arr = [];
    $len1 = count($nums1);
    $len2 = count($nums2);
    for($i = 0; $i < $len1; $i++){
        for($j = 0; $j < $len2; $j++){
            if($nums1[$i] == $nums2[$j] && !isset($intersect_arr[$nums2[$j]])){
                $intersect_arr[$nums2[$j]] = $nums2[$j];
            }
        }
    }
    return $intersect_arr;
}

方法三:hash表,循环两次(与双层嵌套循环不同)

php 复制代码
//hash表,循环两次(与双层嵌套循环不同)
function intersection($nums1, $nums2) {
    $count = [];
    $res = [];
    foreach($nums1 as $num){
        $count[$num] = 1;
    }
    foreach($nums2 as $num){
        if(isset($count[$num])){
            $res[] = $num;
        }
        unset($count[$num]);
    }
    return $res;
}

方法四:循环一次,但是使用了内置函数

php 复制代码
// 一次循环,利用长度做判断,判断是否在另一个中和结果集中
function intersection($nums1, $nums2) {
    $res = [];
    if(count($nums2) > count($nums1)){
        foreach($nums1 as $num){
            if(in_array($num, $nums2) && !in_array($num, $res)){
                $res[] = $num;
            }
        }
    }else{
        foreach($nums2 as $num){
            if(in_array($num, $nums1) && !in_array($num, $res)){
                $res[] = $num;
            }
        }
    }
    return $res;
}
相关推荐
NAGNIP6 小时前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队7 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
Bruce12312 小时前
web专题之php代审(二)
php
Fanxt_Ja12 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下12 小时前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶12 小时前
算法 --- 字符串
算法
BingoGo12 小时前
PHP-FPM 深度调优指南 告别 502 错误,让你的 PHP 应用飞起来
后端·php
博笙困了12 小时前
AcWing学习——差分
c++·算法
NAGNIP12 小时前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP12 小时前
大模型微调框架之LLaMA Factory
算法