Most Frequent Element of an Array

Most Frequent Element of an Array” is one of the favorite technical interview problem. Here, we are given an array of ‘n’ elements and Our task is to find the most frequent element of the array. If there are multiple elements with same highest frequency, return the one which appears first.

Example:

INPUT:
Arr[] = {1, 2, 3, 4, 2, 3, 4, 2}
OUTPUT:
2
EXPLANATION:
2 because it occurs most number of times

There are multiple methods to find the most frequent element of the array. Some of them are:

METHOD 1: Brute-Force

The brute force solution of the given problem would be to run two nested loops and count the occurrence of each element of an array. While counting occurrences of an elements, store the value of highest frequent element in temporary variable. Finally, returns and print the temporary variable.

The time complexity of this solution is O(n^2), where ‘n’ is the size of the array.

C++ Program to find Most Frequent Element of the Array is as follows:

#include<bits/stdc++.h>
using namespace std;
void highestFrequent(int arr[],int n)
{
    int res = arr[0];
    int count = 1;
    for(int i = 0 ; i< n ; i++)
    {
        int temp_count = 0;
        for(int j = 0 ; j < n ; j++)
        {
            if(arr[i] == arr[j])
            {
                temp_count++;
            }
        }
        if(temp_count> count)
        {
            res = arr[i];
        }
    }    
    cout<<"The most frequent element of the array is "<<res<<"\n";
}
int main()
{
    int arr[8] = {1, 2, 3, 4, 2, 3, 4, 2};
    highestFrequent(arr,8);
}

OUTPUT:
The most frequent element of the array is 2

METHOD 2: HASHING BASED

The hashing based approach is much more time efficient approach, but uses auxiliary space.

Simply, store the frequency of all the elements of the array in hashmap.

Now, traverse the hashmap and return the element with highest frequency.

The time complexity of this solution is O(nlogn), where ‘n’ is the size of the array and ‘logn’ for inserting and searching in the hash map.

C++ Program to find most frequent Element of the Array is as follows:

#include<bits/stdc++.h>
using namespace std;
void highestFrequent(int arr[],int n)
{
    /* Creating Hash Map*/
    map<int,int>mp;
    /* Inserting elements and count in Hashmap */
    for(int i = 0; i<n;i++)
    mp[arr[i]]++;
    map<int,int>:: iterator itr;
    int res = arr[0];
    int count = 1;
    /* Scanning Hashmap for most frequent element */
    for(itr = mp.begin(); itr!=mp.end() ; ++itr)
    {
        if(itr -> second > count)
        {
            count = itr->second;
            res = itr->first;
        }
    }
    cout<<"The most frequent element of the array is "<<res<<"\n";
}
int main()
{
    int arr[8] = {1, 2, 3, 4, 2, 3, 4, 2};
    highestFrequent(arr,8);
}

OUTPUT:
The most frequent element of the array is 2

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *