Given two arrays, the task is that we find numbers which are present in first array, but not present in the second array.
Examples :
Input : a[] = {1, 2, 3, 4, 5, 10}; b[] = {2, 3, 1, 0, 5}; Output : 4 10 4 and 10 are present in first array, but not in second array. Input : a[] = {4, 3, 5, 9, 11}; b[] = {4, 9, 3, 11, 10}; Output : 5
Method 1 (Simple)
A Naive Approach is to use two loops and check element which not present in second array.
C++
// C++ simple program to // find elements which are // not present in second array #include<bits/stdc++.h> using namespace std; // Function for finding // elements which are there // in a[] but not in b[]. void findMissing( int a[], int b[], int n, int m) { for ( int i = 0; i < n; i++) { int j; for (j = 0; j < m; j++) if (a[i] == b[j]) break ; if (j == m) cout << a[i] << " " ; } } // Driver code int main() { int a[] = { 1, 2, 6, 3, 4, 5 }; int b[] = { 2, 4, 3, 1, 0 }; int n = sizeof (a) / sizeof (a[0]); int m = sizeof (b) / sizeof (b[1]); findMissing(a, b, n, m); return 0; } |
Java
// Java simple program to // find elements which are // not present in second array class GFG { // Function for finding elements // which are there in a[] but not // in b[]. static void findMissing( int a[], int b[], int n, int m) { for ( int i = 0 ; i < n; i++) { int j; for (j = 0 ; j < m; j++) if (a[i] == b[j]) break ; if (j == m) System.out.print(a[i] + " " ); } } // Driver Code public static void main(String[] args) { int a[] = { 1 , 2 , 6 , 3 , 4 , 5 }; int b[] = { 2 , 4 , 3 , 1 , 0 }; int n = a.length; int m = b.length; findMissing(a, b, n, m); } } // This code is contributed // by Anant Agarwal. |
Python 3
# Python 3 simple program to find elements # which are not present in second array # Function for finding elements which # are there in a[] but not in b[]. def findMissing(a, b, n, m): for i in range (n): for j in range (m): if (a[i] = = b[j]): break if (j = = m - 1 ): print (a[i], end = " " ) # Driver code if __name__ = = "__main__" : a = [ 1 , 2 , 6 , 3 , 4 , 5 ] b = [ 2 , 4 , 3 , 1 , 0 ] n = len (a) m = len (b) findMissing(a, b, n, m) # This code is contributed # by ChitraNayal |
C#
// C# simple program to find elements // which are not present in second array using System; class GFG { // Function for finding elements // which are there in a[] but not // in b[]. static void findMissing( int []a, int []b, int n, int m) { for ( int i = 0; i < n; i++) { int j; for (j = 0; j < m; j++) if (a[i] == b[j]) break ; if (j == m) Console.Write(a[i] + " " ); } } // Driver code public static void Main() { int []a = {1, 2, 6, 3, 4, 5}; int []b = {2, 4, 3, 1, 0}; int n = a.Length; int m = b.Length; findMissing(a, b, n, m); } } // This code is contributed by vt_m. |
PHP
<?php // PHP simple program to find // elements which are not // present in second array // Function for finding // elements which are there // in a[] but not in b[]. function findMissing( $a , $b , $n , $m ) { for ( $i = 0; $i < $n ; $i ++) { $j ; for ( $j = 0; $j < $m ; $j ++) if ( $a [ $i ] == $b [ $j ]) break ; if ( $j == $m ) echo $a [ $i ] , " " ; } } // Driver code $a = array ( 1, 2, 6, 3, 4, 5 ); $b = array ( 2, 4, 3, 1, 0 ); $n = count ( $a ); $m = count ( $b ); findMissing( $a , $b , $n , $m ); // This code is contributed by anuj_67. ?> |
Output :
6 5
Method 2 (Use Hashing)
In this method, we store all elements of second array in a hash table (unordered_set). One by one check all elements of first array and print all those elements which are not present in the hash table.
C++
// C++ efficient program to // find elements which are not // present in second array #include<bits/stdc++.h> using namespace std; // Function for finding // elements which are there // in a[] but not in b[]. void findMissing( int a[], int b[], int n, int m) { // Store all elements of // second array in a hash table unordered_set < int > s; for ( int i = 0; i < m; i++) s.insert(b[i]); // Print all elements of // first array that are not // present in hash table for ( int i = 0; i < n; i++) if (s.find(a[i]) == s.end()) cout << a[i] << " " ; } // Driver code int main() { int a[] = { 1, 2, 6, 3, 4, 5 }; int b[] = { 2, 4, 3, 1, 0 }; int n = sizeof (a) / sizeof (a[0]); int m = sizeof (b) / sizeof (b[1]); findMissing(a, b, n, m); return 0; } |
Java
–
// Java efficient program to find elements // which are not present in second array import java.util.HashSet; import java.util.Set; public class GfG{ // Function for finding elements which // are there in a[] but not in b[]. static void findMissing( int a[], int b[], int n, int m) { // Store all elements of // second array in a hash table HashSet<Integer> s = new HashSet<>(); for ( int i = 0 ; i < m; i++) s.add(b[i]); // Print all elements of first array // that are not present in hash table for ( int i = 0 ; i < n; i++) if (!s.contains(a[i])) System.out.print(a[i] + " " ); } public static void main(String []args){ int a[] = { 1 , 2 , 6 , 3 , 4 , 5 }; int b[] = { 2 , 4 , 3 , 1 , 0 }; int n = a.length; int m = b.length; findMissing(a, b, n, m); } } // This code is contributed by Rituraj Jain |
Python3
# Python3 efficient program to find elements # which are not present in second array # Function for finding elements which # are there in a[] but not in b[]. def findMissing(a, b, n, m): # Store all elements of second # array in a hash table s = dict () for i in range (m): s[b[i]] = 1 # Print all elements of first array # that are not present in hash table for i in range (n): if a[i] not in s.keys(): print (a[i], end = " " ) # Driver code a = [ 1 , 2 , 6 , 3 , 4 , 5 ] b = [ 2 , 4 , 3 , 1 , 0 ] n = len (a) m = len (b) findMissing(a, b, n, m) # This code is contributed by mohit kumar |
C#
// C# efficient program to find elements // which are not present in second array using System; using System.Collections.Generic; class GfG { // Function for finding elements which // are there in a[] but not in b[]. static void findMissing( int []a, int []b, int n, int m) { // Store all elements of // second array in a hash table HashSet< int > s = new HashSet< int >(); for ( int i = 0; i < m; i++) s.Add(b[i]); // Print all elements of first array // that are not present in hash table for ( int i = 0; i < n; i++) if (!s.Contains(a[i])) Console.Write(a[i] + " " ); } // Driver code public static void Main(String []args) { int []a = { 1, 2, 6, 3, 4, 5 }; int []b = { 2, 4, 3, 1, 0 }; int n = a.Length; int m = b.Length; findMissing(a, b, n, m); } } /* This code contributed by PrinciRaj1992 */ |
Output :
6 5
Time complexity : O(n)
Auxiliary Space : O(n)
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
leave a comment
0 Comments