leetcode-两个数组的交集

C++解题方法:

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_set<int> u;
        vector<int> answer;
        for(int i:nums1)
            u.insert(i);
        for(int i:nums2){
            auto a = u.find(i);
            if(a!=u.end()){
                answer.push_back(i);
                u.erase(a);
            }
        }
        return answer;
    }
};# find函数主要实现的是在容器内查找指定的元素,并且这个元素必须是基本数据类型的。# 查找成功返回一个指向指定元素的迭代器,即元素在容器中的下标,查找失败返回end迭代器。

Python解题方法:

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        dic = {}
        for i in nums1:
            if not dic.get(i):
                dic[i]=1
        new = []
        for i in nums2:
            if dic.get(i):
                new.append(i)
                dic[i] -= 1
        return new

相关推荐