Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.
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] Explanation: [4,9] is also accepted.
Constraints:
1 <= nums1.length, nums2.length <= 10000 <= nums1[i], nums2[i] <= 1000
Solution :
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> :: iterator it1;
vector<int> :: iterator it2;
vector<int> nums3;
for(it1=nums1.begin(); it1 != nums1.end(); it1++)
{
for(it2=nums2.begin(); it2 != nums2.end(); it2++)
{
if(*it1 == *it2)
{
if(find(nums3.begin(), nums3.end(), *it1) == nums3.end())
nums3.push_back(*it1);
}
}
}
return nums3;
}
Full Code :
// Find the Intersection of the two unsorted arrays.
#include <bits/stdc++.h>
using namespace std;
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> :: iterator it1;
vector<int> :: iterator it2;
vector<int> nums3;
for(it1=nums1.begin(); it1 != nums1.end(); it1++)
{
for(it2=nums2.begin(); it2 != nums2.end(); it2++)
{
if(*it1 == *it2)
{
if(find(nums3.begin(), nums3.end(), *it1) == nums3.end())
nums3.push_back(*it1);
}
}
}
return nums3;
}
int main()
{
vector<int> nums1 = {4,9,5};
vector<int> nums2 = {9,4,9,8,4};
vector<int> nums3 = intersection(nums1, nums2);
vector<int> :: iterator it1;
for(it1=nums3.begin(); it1 != nums3.end(); it1++)
cout << *it1 << " ";
cout << endl;
return 0;
}
