两个数组的交集 –哈希集应用

两个数组的交集 –哈希集应用

最近在leetcode上面学数据结构,有点小收获,直接放题↓↓


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

示例 1:

 

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

示例 2:

 

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

说明:

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

思路:

哈希集是集合的实现,经常用来查找重复元素,该题可以先将nums1数组中的元素都录入哈希集中,再逐一检查nums2数组中的元素是否在哈希集中,有则输出

代码:

class Solution {
public:
    vector<int> intersection(vector<int>&amp; nums1, vector<int>&amp; nums2) {
        vector<int> num;
        unordered_set<int> hashset,set;
        for(int i:nums1)
        {
            hashset.insert(i);
        }
        for(int i:nums2)
        {
            if(hashset.count(i)==1)
                set.insert(i);
        }
        for(int i:set)
        {
            num.push_back(i);
        }
        return num;
    }
};

3+
Rhett Peng

软件工程大三在读学生,用个人网站记录学习动态

说点什么

avatar