1.Intersection of Two Arrays
Type I
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]Solution: (Used hashset)
class Solution
{
public:
vector<int> intersection(vector<int> &nums1, vector<int> &nums2)
{
vector<int> v;
unordered_set<int> s;
unordered_set<int> vec;
int k;
if (nums1.size() >= nums2.size())
{
for (int i = 0; i < nums1.size(); i++)
{
s.insert(nums1[i]);
}
k = 1;
}
else
{
for (int i = 0; i < nums2.size(); i++)
{
cout<<nums2[i];
s.insert(nums2[i]);
}
k = 2;
}
if (k == 1)
{
for (int i = 0; i < nums2.size(); i++)
{
if (s.find(nums2[i]) != s.end())
{
if (vec.find(nums2[i]) == vec.end())
{
vec.insert(nums2[i]);
v.push_back(nums2[i]);
}
}
}
}
else if(k==2)
{
for (int i = 0; i < nums1.size(); i++)
{
if (s.find(nums1[i]) != s.end())
{
if (vec.find(nums1[i]) == vec.end())
{
vec.insert(nums1[i]);
v.push_back(nums1[i]);
}
}
}
}
return v;
}
};Time complexity O(n+m)
Type II
Each element in the result should appear as many times as it shows in both arrays.
Solution: (Using hashmaps)
Last updated
Was this helpful?