版权声明:转载请随意! https://blog.csdn.net/qq_41723615/article/details/89284232
给定两个数组,编写一个函数来计算它们的交集。
示例 1: 示例 2:
输入: nums1 = [1,2,2,1], nums2 = [2,2] 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [2] 输出: [9,4]
说明:
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。
解题思路:利用集合的唯一性。
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
TreeSet<Integer> set = new TreeSet<>();
//每次取出nums1中的元素num
for(int num: nums1) {
//去重
set.add(num);
}
ArrayList<Integer> list = new ArrayList<>();
//遍历nums2中的元素
for(int num: nums2){
//在set中寻找该num
//如果找到了
if(set.contains(num)){
//往数组中添加
list.add(num);
//从集合中删除该元素,保证该元素不被再一次判断
set.remove(num);
}
}
int[] res = new int[list.size()];
for(int i = 0 ; i < list.size() ; i ++) {
res[i] = list.get(i);
}
return res;
}
}