Given two arrays of integers, find which elements in the second array are missing from the first array. If a number occurs multiple times in the lists, you must ensure that the frequency of that number in both lists is the same. If that is not the case, then it is also a missing number. Return the missing numbers sorted in ascending order. Only include a missing number once, even if it is missing multiple times.
Input Format
There will be four lines of input:
n – the size of the first array arr,
The next line contains n space-separated integers arr[i]
m – the size of the second array brr,
The next line contains m space-separated integers brr[i]
Output Format
Output array of integers (in increasing order) which tells you elements of second array not present in the first array
Example 1
Input
10 203 204 205 206 207 208 203 204 205 206 13 203 204 204 205 206 207 205 208 203 206 205 206 204
Output
204 205 206
Explanation
203 is in both arr and brr and its frequency is 3 in both arrays, hence it is not included in output
204 is included in both arrays but have different frequency hence, it is not included in output
Similarly other numbers are considered
Example 2
Input
4 1 1 2 5 4 1 2 3 4
Output
1 3 4
Explanation
1 is in both arrays but frequency of 1 in both arrays is different, hence included in output
2 is in both arrays and have same frequency, hence not included in output
3 is in second array but not first, hence included in output
4 is in second array but not first, hence included in output
5 is in not in second array, hence not included in output
Constraints:
1 <= n, m <= 2 * 10^5
1 <= arr[i], brr[i] <= 10^4
Solution of Missing Numbers in java:–
import java.util.*; import java.lang.*; import java.io.*; public class Main { public static void main (String[] args) throws java.lang.Exception { //your code here Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int A[] = new int[n]; int fre1[] = new int[10001]; for(int i=0;i<n;i++){ A[i] = sc.nextInt(); fre1[A[i]]++; } int m = sc.nextInt(); int arrm[] = new int[m]; int fre2[] = new int[10001]; for(int i=0;i<m;i++){ arrm[i] = sc.nextInt(); fre2[arrm[i]]++; } for(int i=0;i<10001;i++){ if(fre2[i]!=0&&fre1[i]!=fre2[i]){ System.out.print(i+" "); } } } }
Add a Comment