Encuentra elementos que están presentes en la primera array y no en la segunda

Dadas dos arrays, la tarea es encontrar números que están presentes en la primera array, pero no presentes en la segunda array. 

Ejemplos: 

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  

Método 1 (simple): un enfoque ingenuo es usar dos bucles y verificar el elemento que no está presente en la segunda array.

Implementación:

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.
?>

Javascript

<script>
 
// Javascript 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 (let i = 0; i < n; i++)
        {
            let j;
               
            for (j = 0; j < m; j++)
                if (a[i] == b[j])
                    break;
   
            if (j == m)
                document.write(a[i] + " ");
        }
    }
     
    // Driver Code
    let a=[ 1, 2, 6, 3, 4, 5 ];
    let b=[2, 4, 3, 1, 0];
    let n = a.length;
    let m = b.length;
    findMissing(a, b, n, m);
     
     
    // This code is contributed by avanitrachhadiya2155
     
</script>
Producción

6 5 

Complejidad de tiempo: O(n*m)  ya que se usan bucles internos y externos
Espacio auxiliar: O(1)

Método 2 (Usar Hashing): En este método, almacenamos todos los elementos de la segunda array en una tabla hash ( unordered_set ). Uno por uno, verifique todos los elementos de la primera array e imprima todos aquellos elementos que no están presentes en la tabla hash.

Implementación:

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 */

Javascript

<script>
// Javascript 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[].
    function findMissing(a,b,n,m)
    {
        // Store all elements of
        // second array in a hash table
        let s = new Set();
        for (let i = 0; i < m; i++)
            s.add(b[i]);
          
        // Print all elements of first array
        // that are not present in hash table
        for (let i = 0; i < n; i++)
            if (!s.has(a[i]))
                document.write(a[i] + " ");
    }
     
    let a=[1, 2, 6, 3, 4, 5 ];
    let b=[2, 4, 3, 1, 0];
    let n = a.length;
    let m = b.length;
    findMissing(a, b, n, m);
     
 
// This code is contributed by patel2127
</script>
Producción

6 5 

Complejidad temporal: O(n+m) 
Espacio auxiliar: O(n)

Este artículo es una contribución de DANISH_RAZA . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *