题目
思路
因为输出结果中每个元素是唯一的,即不包含重复元素,所以可以选择Set这种数据结构。首先遍历将数组1中的所有元素添加至Set中,此时Set中的元素全部唯一。然后遍历数组2,判断在Set中是否包含此子元素,如果存在则添加至定义好的ArrayList中,又因为数组2中可能还存在该重复元素,所以添加完之后从Set删除此元素,最后将ArrayList转换成数组返回即可
代码
import java.util.TreeSet;
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new TreeSet<>();
for(int i = 0;i < nums1.length; i++) {
set.add(nums1[i]);
}
List<Integer> list = new ArrayList<>();
for(int i = 0;i < nums2.length; i++) {
if(set.contains(nums2[i])){
list.add(nums2[i]);
set.remove(nums2[i]);
}
}
int[] res = new int[list.size()];
for(int i = 0; i < list.size(); i++) {
res[i] = list.get(i);
}
return res;
}
}