forked from ritikbanger/Hacktoberfest2022-DSA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
21_Intersection Of Two Array.cpp
84 lines (55 loc) · 1.26 KB
/
21_Intersection Of Two Array.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*
Problem Statement:
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 <= 1000
0 <= nums1[i], nums2[i] <= 1000
*/
#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> res;
for (auto x : nums1) {
if (find(nums2.begin(), nums2.end(), x) != nums2.end()) {
if (find(res.begin(), res.end(), x) == res.end()) {
res.push_back(x);
continue;
}
}
}
return res;
}
int main()
{
std::ios::sync_with_stdio(false);
int T;
cin >> T;
// cin.ignore(); must be there when using getline(cin, s)
while (T--)
{
int n, m;
cin >> n >> m;
vector<int> nums1(n);
vector<int> nums2(m);
for (int i = 0; i < n; i++) {
cin >> nums1[i];
}
for (int i = 0; i < m; i++) {
cin >> nums2[i];
}
std::vector<int> res = intersection(nums1, nums2);
for (auto x : res) {
cout << x << " ";
}
cout << endl;
}
return 0;
}