leetcode349两个数组的交集

本文介绍了如何使用Java编程语言中的HashSet数据结构来计算两个整数数组的交集。通过将nums1的元素添加到HashSet中,然后遍历nums2并检查元素是否存在于HashSet中,找到交集后将结果存储在新数组中返回。
摘要由CSDN通过智能技术生成

代码:

public int[] intersection(int[] nums1, int[] nums2) {
    int index = 0;
    Set<Integer> set = new HashSet<>();
    Set<Integer> setResult = new HashSet<>();
    if (nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0){
        return null;
    }
    for (int i:nums1){
        set.add(i);
    }
    for (int i:nums2){
        if (set.contains(i)){
            setResult.add(i);
        }
    }
    int[] numResult = new int[setResult.size()];
    for(int i:setResult){
        numResult[index++] = i;
    }
    return numResult;
}

解题思路:本题适合set,因为set无序不可重复,而交集恰好符合这一点,所以把nums1的元素添加到set中,然后再通过遍历nums2和set.contains(i)这个方法判断nums2中的元素是否在set中,如果在,说明是交集中的元素,添加到setResult中(这里为什么不用数组呢,因为我们并不知道交集的元素有多少个,无法定义数组长度。),之后再遍历setResult中的元素,把元素添加到数组中,最后返回数组。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值