[Leetcode]349. 两个数组的交集——题解

_白白不白
优质创作者: Java技术领域
2022-01-27 11:24:45
  1. 两个数组的交集

题目:

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

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

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]

说明:

输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。

题解:

这个题继续让我们练习哈希表,由于题目中要求输出的结果唯一(不能有重复元素)而且不需要考虑输出顺序(无序表),所以我们选择HashSet。

还是分别遍历两个数组,遍历第一个数组的时候我们把所有元素加进HashSet中去(无重复元素),遍历第二个数组的时候我们判断如果这个元素在第一个HashSet中存在则我们就把这个元素加入到第二个HashSet中去,由于函数最后要求输出的是数组,那我们在依据第二个HashSet的大小创建一个数组,并且把第二个HashSet中的元素加入到数组中去,并且返回数组。

代码如下:

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        if(nums1==null||nums2==null){
            return new int[0];
        }
        Set<Integer> n1 = new HashSet();
        Set<Integer> n2 = new HashSet();
        for(int i:nums1){
            n1.add(i);
        }
        for(int i:nums2){
            if(n1.contains(i))
            n2.add(i);
        }
        int[] n = new int[n2.size()];
        int index=0;
        for(int i:n2){
            n[index++]=i;
        }
        return n;
    }
}
...全文
65 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,636

社区成员

发帖
与我相关
我的任务
社区描述
欢迎大家来到抱团内卷学习社区,在这里大家可以分享自己的学习笔记,求职心得,一起记录彼此的成长历程。社区群号:94108843,WX公众号:【兴趣使然的草帽路飞】
社区管理员
  • 路  飞
  • 一百个Chocolate
  • 灰小猿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

最怕你一生碌碌无为,还安慰自己平凡可贵!

努力提高自己的知识储备,助力每一位冲刺大厂的小伙伴!

祝大家前程似锦,offer连连!

注意:每个月活跃积分最高的小伙伴,可以获得社区管理员权限哦!

试试用AI创作助手写篇文章吧