Open bitfishxyz opened 5 years ago
题目不要求考虑重复元素,所以这题非常简单。
我们只需要将两个数组转化为Set,然后求出它们交集就行了
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set1 = new TreeSet<>();
for (int i = 0; i < nums1.length; i++) {
set1.add(nums1[i]);
}
Set<Integer> set2 = new TreeSet<>();
for (int i = 0; i < nums2.length; i++) {
set2.add(nums2[i]);
}
// 求出两个Set的交集
List<Integer> intersectionList = new ArrayList<>();
set1.forEach((ele) -> {
if (set2.contains(ele)){
intersectionList.add(ele);
}
});
// 转化为数组
int[] intersectionArray = new int[intersectionList.size()];
for (int i = 0; i < intersectionList.size(); i++) {
intersectionArray[i] = intersectionList.get(i);
}
return intersectionArray;
}
}
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
示例 2:
说明:
输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。