LeetCode Java集合349:两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。

示例 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 set = new TreeSet<>();
        //每次取出nums1中的元素num
        for(int num: nums1) {
            //去重
            set.add(num);
        }
        ArrayList 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;
    }
}

 

你可能感兴趣的:(#,数据结构和算法,大学与Java那些年)