The following code uses two pointer technique:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr1 = {1, 2, 4, 5, 6};
vector<int> arr2 = {2, 3, 5, 7};
int i = 0, j = 0;
while (i < arr1.size() && j < arr2.size()) {
if (arr1[i] == arr2[j]) {
cout << arr1[i] << endl;
i++;
j++;
} else if (arr1[i] < arr2[j]) {
i++;
} else {
j++;
}
}
return 0;
}
#include <stdio.h>
int main() {
int arr1[] = {1, 2, 4, 5, 6};
int arr2[] = {2, 3, 5, 7};
int i = 0, j = 0;
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
while (i < n1 && j < n2) {
if (arr1[i] == arr2[j]) {
printf("%d\n", arr1[i]);
i++;
j++;
} else if (arr1[i] < arr2[j]) {
i++;
} else {
j++;
}
}
return 0;
}
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 2, 4, 5, 6};
int[] arr2 = {2, 3, 5, 7};
int i = 0, j = 0;
while (i < arr1.length && j < arr2.length) {
if (arr1[i] == arr2[j]) {
System.out.println(arr1[i]);
i++;
j++;
} else if (arr1[i] < arr2[j]) {
i++;
} else {
j++;
}
}
}
}
arr1 = [1, 2, 4, 5, 6]
arr2 = [2, 3, 5, 7]
i = 0
j = 0
while i < len(arr1) and j < len(arr2):
if arr1[i] == arr2[j]:
print(arr1[i])
i += 1
j += 1
elif arr1[i] < arr2[j]:
i += 1
else:
j += 1
let arr1 = [1, 2, 4, 5, 6];
let arr2 = [2, 3, 5, 7];
let i = 0, j = 0;
while (i < arr1.length && j < arr2.length) {
if (arr1[i] === arr2[j]) {
console.log(arr1[i]);
i++;
j++;
} else if (arr1[i] < arr2[j]) {
i++;
} else {
j++;
}
}
What is the purpose of this pseudo code?
Finds the union of two arrays.
Merges two arrays while removing duplicates.
Prints the intersection of two sorted arrays.
Finds the difference between two arrays.
This question is part of this quiz :
Quiz on Two Pointer Technique for DSA