LeetCode探索之旅(84)-349Intersection of Two Arrays

今天继续刷LeetCode,第349题,找出两个数组中交叉的数,且唯一

分析:
既然不能出现重复的,那么可以利用set的特性,对数组进行去冗余。然后比较两个数组,判断是否存在相同的元素,输出即可。Python中可以直接使用set函数,效率会高很多。

问题:
1、C++中set函数的遍历;
2、Python中set的灵活使用;

附上C++代码:

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector<int> re;
        unordered_set<int> s(nums1.begin(),nums1.end());
        for(int i=0;i<nums2.size();i++)
        {
            if(s.erase(nums2[i]))
                re.push_back(nums2[i]);
        }
        return re;
    }
};

附上Python代码:

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        a=set(nums1)
        li=[]
        for i in a:
            if i in nums2:
                li.append(i)
        return li

附上Python代码2:

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        return list(set(nums1)&set(nums2))

猜你喜欢

转载自blog.csdn.net/JerryZengZ/article/details/89674466