Friday, January 10, 2025
Google search engine
HomeData Modelling & AIFind numbers present in at least two of the three arrays

Find numbers present in at least two of the three arrays

Given 3 arrays, arr[], brr[], and crr[], the task is to find the common elements in at least 2 arrays out of the given 3 arrays
Examples:

Input: arr[] = {1, 1, 3, 2, 4}, brr[] = {2, 3, 5}, crr[] = {3, 6}
Output: {2, 3}
Explanation: Elements 2 and 3 appear in atleast 2 arrays

Input: arr[] = {3, 1}, brr[] = {2, 3}, crr[] = {1, 2}
Output: {2, 3, 1}

 

Approach: The task can be solved with the help of HashSet Follow the below steps to solve the problem:

  • Create three hashsets (s1, s2, and s3) to store distinct elements of the three arrays and also one HashSet to store distinct elements of all three arrays.
  • Iterate in set and check for the common elements in atleast two sets(s1, s2), (s1, s3) and (s2, s3).
  • If an element satisfies the above condition, print that element.
     

Below is the implementation of the above code:

C++




// C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
 
void get(vector<int>& p, vector<int>& c, vector<int>& m)
{
 
    // Store distinct elements of array arr[]
    set<int> s1;
 
    // Store distinct elements of array brr[]
    set<int> s2;
 
    // Store distinct elements of array crr[]
    set<int> s3;
 
    // Store the distinct elements
    // of all three arrays
    set<int> set;
    for (auto i : p) {
        s1.insert(i);
        set.insert(i);
    }
 
    for (auto i : c) {
        s2.insert(i);
        set.insert(i);
    }
 
    for (int i : m) {
        s3.insert(i);
        set.insert(i);
    }
 
    // Stores the common elements
    vector<int> result;
    for (auto i : set) {
        if (s1.count(i) && s2.count(i)
            || s2.count(i) && s3.count(i)
            || s1.count(i) && s3.count(i))
            cout << i << " ";
    }
}
 
// Driver Code
int main()
{
    vector<int> arr = { 1, 1, 3, 2, 4 };
    vector<int> brr = { 2, 3, 5 };
    vector<int> crr = { 3, 6 };
    get(arr, brr, crr);
 
    return 0;
}
 
    // This code is contributed by rakeshsahni


Java




// Java implementation of above approach
 
import java.io.*;
import java.util.*;
 
class GFG {
    public static void get(
        int[] p, int[] c, int[] m)
    {
 
        // Store distinct elements of array arr[]
        Set<Integer> s1 = new HashSet<>();
 
        // Store distinct elements of array brr[]
        Set<Integer> s2 = new HashSet<>();
 
        // Store distinct elements of array crr[]
        Set<Integer> s3 = new HashSet<>();
 
        // Store the distinct elements
        // of all three arrays
        Set<Integer> set = new HashSet<>();
        for (int i : p) {
            s1.add(i);
            set.add(i);
        }
 
        for (int i : c) {
            s2.add(i);
            set.add(i);
        }
 
        for (int i : m) {
            s3.add(i);
            set.add(i);
        }
 
        // Stores the common elements
        List<Integer> result
            = new ArrayList<>();
        for (int i : set) {
            if (s1.contains(i)
                    && s2.contains(i)
                || s2.contains(i)
                       && s3.contains(i)
                || s1.contains(i)
                       && s3.contains(i))
                System.out.print(i + " ");
        }
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int[] arr = { 1, 1, 3, 2, 4 };
        int[] brr = { 2, 3, 5 };
        int[] crr = { 3, 6 };
        get(arr, brr, crr);
    }
}


Python3




# Python3 implementation of above approach
def get(p, c, m) :
 
    # Store distinct elements of array arr[]
    s1 = set();
 
    # Store distinct elements of array brr[]
    s2 = set();
 
    # Store distinct elements of array crr[]
    s3 = set();
 
    # Store the distinct elements
    # of all three arrays
    set_obj = set();
     
    for i in p :
        s1.add(i);
        set_obj.add(i);
 
    for i in c :
        s2.add(i);
        set_obj.add(i);
 
    for i in m :
        s3.add(i);
        set_obj.add(i);
 
    # Stores the common elements
    result = [];
    for i in set_obj :
        if (list(s1).count(i) and list(s2).count(i)
            or list(s2).count(i) and list(s3).count(i)
            or list(s1).count(i) and list(s3).count(i)) :
            print(i,end= " ");
   
# Driver Code
if __name__ == "__main__" :
 
    arr = [ 1, 1, 3, 2, 4 ];
    brr = [ 2, 3, 5 ];
    crr = [ 3, 6 ];
    get(arr, brr, crr);
 
    # This code is contributed by AnkThon


C#




// C# implementation of above approach
using System;
using System.Collections;
using System.Collections.Generic;
 
class GFG {
    static void get(
        int[] p, int[] c, int[] m)
    {
 
        // Store distinct elements of array arr[]
        HashSet<int> s1 = new HashSet<int>();
 
        // Store distinct elements of array brr[]
        HashSet<int> s2 = new HashSet<int>();
 
        // Store distinct elements of array crr[]
        HashSet<int> s3 = new HashSet<int>();
 
        // Store the distinct elements
        // of all three arrays
        HashSet<int> set = new HashSet<int>();
        foreach (int i in p) {
            s1.Add(i);
            set.Add(i);
        }
 
        foreach (int i in c) {
            s2.Add(i);
            set.Add(i);
        }
 
        foreach (int i in m) {
            s3.Add(i);
            set.Add(i);
        }
 
        // Stores the common elements
        ArrayList result
            = new ArrayList();
        foreach (int i in set) {
            if (s1.Contains(i)
                    && s2.Contains(i)
                || s2.Contains(i)
                       && s3.Contains(i)
                || s1.Contains(i)
                       && s3.Contains(i))
                Console.Write(i + " ");
        }
    }
 
    // Driver Code
    public static void Main()
    {
        int[] arr = { 1, 1, 3, 2, 4 };
        int[] brr = { 2, 3, 5 };
        int[] crr = { 3, 6 };
        get(arr, brr, crr);
    }
}
 
// This code is contributed by Samim Hossain Mondal.


Javascript




<script>
// Javascript implementation of above approach
function get(p, c, m)
{
 
  // Store distinct elements of array arr[]
  let s1 = new Set();
 
  // Store distinct elements of array brr[]
  let s2 = new Set();
 
  // Store distinct elements of array crr[]
  let s3 = new Set();
 
  // Store the distinct elements
  // of all three arrays
  let set = new Set();
  for (i of p) {
    s1.add(i);
    set.add(i);
  }
 
  for (i of c) {
    s2.add(i);
    set.add(i);
  }
 
  for (i of m) {
    s3.add(i);
    set.add(i);
  }
 
  // Stores the common elements
  let result = [];
  for (i of [...set].reverse()) {
    if (s1.has(i) && s2.has(i)
      || s2.has(i) && s3.has(i)
      || s1.has(i) && s3.has(i))
      document.write(i + " ");
  }
}
 
// Driver Code
let arr = [1, 1, 3, 2, 4];
let brr = [2, 3, 5];
let crr = [3, 6];
get(arr, brr, crr);
 
// This code is contributed by gfgking
</script>


Output

2 3 

Time Complexity: O(n1+n2+n3)  (where n1, n2 and n3  are the length of given arrays)
Auxiliary Space: O(n1+n2+n3) 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments