算法-哈希表篇02-两个数组的交集

两个数组的交集

力扣题目链接

题目描述

给定两个数组 nums1 和 nums2 ,返回它们的交集

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

解题思路

我们使用一个哈希表来存储nums1中的元素,然后遍历数组nums2,并查找哈希表中是否含有该元素,如果含有则是两者交集,存储在ans数组中。

题解

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector<int> ans;
        unordered_set<int> us(nums1.begin(), nums1.end());
        for(int x : nums2){
            if(us.count(x)){
                ans.push_back(x);
                us.erase(x);
            }
        }

        return ans;
    }
};

总结

主要是要理解,这道题如果使用双循环遍历两个数组也是可以的,但是这样的作法时间复杂度为O(n2)n的平方,使用哈希表,查询效率为O(1)所以,总体的时间复杂度为O(n),在时间上优化了算法。

相关推荐
Dizzy.5173 分钟前
数据结构(查找)
数据结构·学习·算法
分别努力读书3 小时前
acm培训 part 7
算法·图论
武乐乐~3 小时前
欢乐力扣:赎金信
算法·leetcode·职场和发展
'Debug3 小时前
算法从0到100之【专题一】- 双指针第一练(数组划分、数组分块)
算法
Fansv5873 小时前
深度学习-2.机械学习基础
人工智能·经验分享·python·深度学习·算法·机器学习
yatingliu20195 小时前
代码随想录算法训练营第六天| 242.有效的字母异位词 、349. 两个数组的交集、202. 快乐数 、1. 两数之和
c++·算法
uhakadotcom5 小时前
Google DeepMind最近发布了SigLIP 2
人工智能·算法·架构
sjsjs115 小时前
【数据结构-并查集】力扣1202. 交换字符串中的元素
数据结构·leetcode·并查集
三年呀5 小时前
计算机视觉之图像处理-----SIFT、SURF、FAST、ORB 特征提取算法深度解析
图像处理·python·深度学习·算法·目标检测·机器学习·计算机视觉
淡黄的Cherry5 小时前
istio实现灰度发布,A/B发布, Kiali网格可视化(二)
java·算法·istio