LC349-两个数组的交集

力扣题目链接

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

示例:

思路

比较两个数组,有相同的就将相同的数放到新的数组。比较过程中可能出现重复的相同值,那么需要对比较后的数组进行去重。在java中可以使用set

HashSet实现了Set接口,它不允许集合中有重复的值,add(Object o)方法用来在Set中添加元素,当元素值重复时则会立即返回false,如果成功添加的话会返回true。

java

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        if(nums1.length==0||nums2.length==0)
        return new int[0];
        Set<Integer> set1=new HashSet<Integer>();
        Set<Integer> set2=new HashSet<Integer>();
        for(int i:nums1)
        {
            set1.add(i);
        }
        for(int i : nums2)
        {
            if(set1.contains(i)) //contains()来判断nums1中是否存在i,存在则加入到set2中
            set2.add(i);
        }
        int j=0;
        int ls[]=new int[set2.size()];
        for(int i : set2)
        ls[j++]=i; //以数组的形式返回
        return ls;
    }
}
posted @ 2022-04-03 23:13  贝贝子  阅读(14)  评论(0编辑  收藏  举报