一、题目描述
给定两个数组,编写一个函数来计算它们的交集。
二、解题思路
可以使用两个set集合,一个用来放nums数组中的数据,一个用来放结果,然后将nums2中的数据进行遍历逐一取值进行比较,
三、代码编写步骤
第一步:声明两个set集合,一个用来存放nums1的数组值,一个用来存放对比结果相同的值
第二步:循环遍历,实现步骤一,使用set集合的add()方法,可以向set集合集合中添加数据,然后就是进行比较,利用contains()方法。
第三步:输出的是一个数组所以需要将存放结果的集合转换为数组。
四、代码演示
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
//这个集合用来存放遍历的num1数组的值
Set<Integer> set1 = new HashSet<>();
//这个集合用来存放结果集
Set<Integer> resSet = new HashSet<>();
//把nums1中的元素全部加入到集合set1中
for (int i = 0; i < nums1.length; i++) {
set1.add(nums1[i]);
}
for (int i = 0; i < nums2.length; i++) {
//查看nums2中的元素是否存在集合set1中,如果存在,
//就加入到集合resSet中
if (set1.contains(nums2[i])) {
resSet.add(nums2[i]);
}
}
//将集合reSet转换为数组输出
int i = 0;
int[] res = new int[resSet.size()];
for (Integer num : resSet) {
res[i++] = num;
}
return res;
}
}