Intersection of Two Arrays II
Intersection of Two Arrays II
Send Feedback
Intersection of Two Arrays II
Input arrays/lists can contain duplicate elements.
The intersection elements printed would be in the order they appear in the first array/list(ARR1)
The first line contains an Integer 't' which denotes the number of test cases or queries to be run. Then the test cases follow.
First line of each test case or query contains an integer 'N' representing the size of the first array/list.
Second line contains 'N' single space separated integers representing the elements of the first the array/list.
Third line contains an integer 'M' representing the size of the second array/list.
Fourth line contains 'M' single space separated integers representing the elements of the second array/list.
For each test case, print the intersection elements in a row, separated by a single space.
Output for every test case will be printed in a separate line.
1 <= t <= 10^2
0 <= N <= 10^3
0 <= M <= 10^3
Time Limit: 1 sec
2
6
2 6 8 5 4 3
4
2 3 4 7
2
10 10
1
10
2 4 3
10
1
4
2 6 1 2
5
1 2 3 4 2
2 1 2
Since, both input arrays have two '2's, the intersection of the arrays also have two '2's. The first '2' of first array matches with the first '2' of the second array. Similarly, the second '2' of the first array matches with the second '2' if the second array.
#include <iostream>#include <algorithm>using namespace std;#include "solution.h"
void intersection(int *input1, int *input2, int size1, int size2){ //Write your code here for(int i=0;i<size1;i++){ for(int j=0;j<size2;j++){ if(input1[i]==input2[j]){ cout<<input1[i]<<" "; input2[j]=-1; break;
} } }}
int main(){ int t; cin >> t; while (t--) {
int size1, size2;
cin >> size1; int *input1 = new int[size1];
for (int i = 0; i < size1; i++) { cin >> input1[i]; }
cin >> size2; int *input2 = new int[size2];
for (int i = 0; i < size2; i++) { cin >> input2[i]; }
intersection(input1, input2, size1, size2); delete[] input1; delete[] input2; cout << endl; }
return 0;}
Comments
Post a Comment