Find the frequencies of all duplicates elements in the array

Given an array of integers with duplicate elements in it, the task is to find the duplicate elements in the array and their frequencies.

Examples:

Input: arr[] = {2, 3, 4, 5, 4, 6, 4, 7, 4, 5, 6, 6}
Output: Below is the frequency of repeated elements –
4 –> 4
5 –> 2
6 –> 3

Input: arr[] = {4, 4, 5, 5, 6}
Output: Below is the frequency of repeated elements –
4 –> 2
5 –> 2

Approach:



  • Create a Hash Map to store the frequency of the elements.
  • Elements whose frequency is greater than 1 are the repeated elements.

Below is the implementation of the above approach:

CPP

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP Implementation to find the
// repeating elements with there count
#include<bits/stdc++.h>
using namespace std;
  
// Function to find the repeating
// elements with there count
map<int,int> findRepeating(int arr[], int size){
  
    // Hash map to store the 
    // frequency of elements
    map<int,int> frequency;
      
    // Loop to store the frequency of 
    // elements of array
    for (int i = 0; i < size; i++)
    frequency[arr[i]]++;
    return frequency;
}
          
// Driver Code 
int main(){
    int arr[] = {4, 4, 5, 5, 6};
    int arr_size = sizeof(arr)/sizeof(arr[0]); 
    map<int,int> frequency = findRepeating(arr, arr_size);
    cout<<"Below is the frequency of repeated elements -"<<endl;
    for(auto x : frequency){
        if (frequency[x.first] > 1)
            cout<<x.first<<" --> "<<frequency[x.first]<<endl;
    }
}
      
// This code is contributed by Surendra_Gangwar

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Implementation to find the
// repeating elements with there count
import java.util.*;
  
class GFG
{
      
// Function to find the repeating
// elements with there count
static HashMap<Integer, Integer> findRepeating(int []arr, int size){
      
    // Hash map to store the 
    // frequency of elements
    HashMap<Integer,Integer> frequency = new HashMap<Integer,Integer>();
      
    // Loop to store the frequency of 
    // elements of array
    for(int i = 0; i < size; i++) 
    {
        if(frequency.containsKey(arr[i]))
        {
            frequency.put(arr[i], frequency.get(arr[i]) + 1);
        }
        else
        {
            frequency.put(arr[i], 1);
        }
    }
    return frequency;
  
// Driver Code 
public static void main(String []args)
{
    int []arr = {4, 4, 5, 5, 6};
    int arr_size = arr.length; 
    HashMap<Integer,Integer> frequency = findRepeating(arr, arr_size);
    System.out.println("Below is the frequency"
    +"of repeated elements -");
    for (Map.Entry<Integer,Integer> entry : frequency.entrySet())
        if (entry.getValue() > 1)
            System.out.println(entry.getKey()+ " --> "+entry.getValue());
}
}
  
// This code is contributed by PrinciRaj1992

chevron_right


Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python Implementation to find the
# repeating elements with there count
  
# Function to find the repeating
# elements with there count
def findRepeating(arr, size):
      
    # Hash map to store the 
    # frequency of elements
    frequency = {}
      
    # Loop to store the frequency of 
    # elements of array
    for i in range (0, size):
        frequency[arr[i]] = \
        frequency.get(arr[i], 0) + 1
    return frequency
      
# Driver Code 
if __name__ == "__main__":
    arr = [4, 4, 5, 5, 6]
    arr_size = len(arr) 
    frequency = findRepeating(arr, arr_size)
    print("Below is the frequency\
    of repeated elements -")
    for i in frequency:
        if frequency[i] > 1:
            print(i, " --> ", frequency[i])

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Implementation to find the
// repeating elements with there count
using System;
using System.Collections.Generic;
  
class GFG
{
      
// Function to find the repeating
// elements with there count
static Dictionary<int, int> findRepeating(int []arr, int size){
      
    // Hash map to store the 
    // frequency of elements
    Dictionary<int,int> frequency = new Dictionary<int,int>();
      
    // Loop to store the frequency of 
    // elements of array
    for(int i = 0; i < size; i++) 
    {
        if(frequency.ContainsKey(arr[i]))
        {
            frequency[arr[i]] = frequency[arr[i]] + 1;
        }
        else
        {
            frequency.Add(arr[i], 1);
        }
    }
    return frequency;
  
// Driver Code 
public static void Main(String []args)
{
    int []arr = {4, 4, 5, 5, 6};
    int arr_size = arr.Length; 
    Dictionary<int,int> frequency = findRepeating(arr, arr_size);
    Console.WriteLine("Below is the frequency"
                        +"of repeated elements -");
    foreach (KeyValuePair<int,int> entry in frequency)
        if (entry.Value > 1)
            Console.WriteLine(entry.Key+ " --> "+entry.Value);
}
}
  
// This code is contributed by 29AjayKumar

chevron_right


Output:

Below is the frequency    of repeated elements -
4  -->  2
5  -->  2

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.