leetcode--349--两个数组的交集

2021-01-24  本文已影响0人  minningl

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

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]

说明:

输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。

链接:https://leetcode-cn.com/problems/intersection-of-two-arrays

思路:
1、将数组通过set去重
2、遍历其中一个set,如果元素在另一个set中,则保存下来

Python代码:

class Solution(object):
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        set1 = set(nums1)
        set2 = set(nums2)

        ret = []
        for item in set2:
            if item in set1:
                ret.append(item)
        return ret

C++代码

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        set<int> set1(nums1.begin(), nums1.end());
        set<int> set2(nums2.begin(), nums2.end());

        vector<int> ret;
        for (int item : set1){
            if (find(set2.begin(), set2.end(), item)!=set2.end()){
                ret.push_back(item);
            }
        }
        return ret;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读