LC349-两个数组的交集
给定两个数组 nums1
和 nums2
,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
示例:
思路
比较两个数组,有相同的就将相同的数放到新的数组。比较过程中可能出现重复的相同值,那么需要对比较后的数组进行去重。在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;
}
}