两个数组的交集

题意:

给定两个数组 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;
}
相关推荐
珠海西格电力4 小时前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源
还有多久拿退休金5 小时前
让飞书知识库跟着 commit 自己长:一套自动化知识库的真实实现
前端·算法·架构
KaMeidebaby7 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法
是Dream呀7 小时前
基于深度学习的人类行为识别算法研究
人工智能·深度学习·算法
happyprince8 小时前
03_NVIDIA_ModelOpt-量化算法深入
人工智能·深度学习·算法
大鱼>8 小时前
AI+货物追踪:智能快递柜追踪系统
人工智能·深度学习·算法·机器学习
ylscode8 小时前
PHP再曝高危安全漏洞:TLS连接缺陷可致FPM全面崩溃,OpenSSL内存损坏隐患同步浮现
开发语言·php
researcher-Jiang8 小时前
算法训练:堆 & 可并堆
算法
在书中成长8 小时前
HarmonyOS 小游戏《对战五子棋》开发第18篇 - 棋盘设计
算法·harmonyos
Frostnova丶9 小时前
(12)LeetCode 76. 最小覆盖子串
算法·leetcode·职场和发展