算法第十六天:leetcode349.两个数组的交集

一、两个数组的交集的题目描述与链接

349.两个数组的交集如下表所示,您可以直接复制下面网址进入力扣学习,在观看下面的内容之前您一定要先做一遍哦,以便让你印象更加深刻!

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

1.1 该题的题目描述如下:

给定两个数组 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

二、Java版

该题可用集合的方法去解题,具体代码如下所示:

java 复制代码
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        //if(nums1==null||nums1.length==0||nums2==null){
        //    return new int[0];
        //}
        Set<Integer> set1=new HashSet<>();   //集合可删除重复元素
        Set<Integer> result=new HashSet<>();
        for(int i : nums1){
            set1.add(i);//在集合中添加num1的元素
        }
        for(int i : nums2){
            if(set1.contains(i)){ //set1里面的元素包含着nums2
                result.add(i);
            }
        }
        //另外创建一个数组存放元素,最后要返回数组
        int[] arr=new int[result.size()];
        int j=0;
        for(int i : result){ //遍历result的结果
            arr[j++]=i;
        }
        return arr;
    }
}

三、两个数组的交集具体思路

  1. 首先创建两个集合set1和result,然后遍历nums1,在集合set1里面中添加num1的元素;
  2. 遍历nums2,然后要先判断一下set1中是否包含着num2,如果可以的话,则在result集合里面添加,集合可以删除重复元素;
  3. 最后创建一个数组arr保存遍历result的结果,输出结果即可。

感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您双指针的一些算法知识和启发。如果您有任何问题或意见,请随时联系我或在评论区评论。希望本题的算法知识对大家有帮助,谢谢各位读者的支持!!!

相关推荐
草莓熊Lotso33 分钟前
《算法闯关指南:优选算法--模拟》--41.Z 字形变换,42.外观数列
开发语言·c++·算法
啊吧怪不啊吧37 分钟前
算法王冠上的明珠——动态规划之斐波那契数列问题
大数据·算法·动态规划
无敌最俊朗@8 小时前
力扣hot100-206反转链表
算法·leetcode·链表
Kuo-Teng8 小时前
LeetCode 279: Perfect Squares
java·数据结构·算法·leetcode·职场和发展
王哈哈^_^8 小时前
YOLO11实例分割训练任务——从构建数据集到训练的完整教程
人工智能·深度学习·算法·yolo·目标检测·机器学习·计算机视觉
檐下翻书1738 小时前
从入门到精通:流程图制作学习路径规划
论文阅读·人工智能·学习·算法·流程图·论文笔记
CoderYanger8 小时前
B.双指针——3194. 最小元素和最大元素的最小平均值
java·开发语言·数据结构·算法·leetcode·职场和发展·1024程序员节
小曹要微笑10 小时前
STM32各系列时钟树详解
c语言·stm32·单片机·嵌入式硬件·算法
前进的李工11 小时前
LeetCode hot100:094 二叉树的中序遍历:从递归到迭代的完整指南
python·算法·leetcode·链表·二叉树
麦麦大数据11 小时前
F049 知识图谱双算法推荐在线学习系统vue+flask+neo4j之BS架构开题论文全源码
学习·算法·知识图谱·推荐算法·开题报告·学习系统·计算机毕业设计展示