# Majority Element | Set-2 (Hashing)

Given an array of size N, find the majority element. The majority element is the element that appears more than times in the given array.

Examples:

Input: [3, 2, 3]
Output: 3

Input: [2, 2, 1, 1, 1, 2, 2]
Output: 2


## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

The problem has been solved using 4 different methods in the previous post. In this post hashing based solution is implemented. We count occurrences of all elements. And if count of any element becomes more than n/2, we return it.

Hence if there is a majority-element, it will be the value of the key.

Below is the implementation of the above approach:

## C++

 #include  using namespace std;     #define ll long long int     // function to print the majority Number  int majorityNumber(int arr[], int n)  {      int ans = -1;      unordered_map<int, int>freq;      for (int i = 0; i < n; i++)      {          freq[arr[i]]++;          if (freq[arr[i]] > n / 2)              ans = arr[i];      }      return ans;  }      // Driver code  int main()  {      int a[] = {2, 2, 1, 1, 1, 2, 2};      int n = sizeof(a) / sizeof(int);      cout << majorityNumber(a, n);       return 0;  }     // This code is contributed   // by sahishelangia

## Java

 import java.util.*;     class GFG   {     // function to print the majority Number  static int majorityNumber(int arr[], int n)  {      int ans = -1;      HashMap freq = new HashMap();                                                 for (int i = 0; i < n; i++)      {          if(freq.containsKey(arr[i]))          {              freq.put(arr[i], freq.get(arr[i]) + 1);          }          else         {              freq.put(arr[i], 1);          }          if (freq.get(arr[i]) > n / 2)              ans = arr[i];      }      return ans;  }      // Driver code  public static void main(String[] args)   {      int a[] = {2, 2, 1, 1, 1, 2, 2};      int n = a.length;      System.out.println(majorityNumber(a, n));  }  }      // This code is contributed by Princi Singh

## Python

 # function to print the   # majorityNumber  def majorityNumber(nums):             # stores the key count       key, count = None, 0            # iterate in the array       for num in nums:                     # key is 0          if key is None:              key, count = num, 1         else:              if key == num:                  count += 1             else:                  count -= 1            if count == 0:              key = None        return key     # Driver Code  a = [2, 2, 1, 1, 1, 2, 2]  print majorityNumber(a)

## C#

 // C# implementation of the approach  using System;  using System.Collections.Generic;         class GFG   {     // function to print the majority Number  static int majorityNumber(int []arr, int n)  {      int ans = -1;      Dictionary<int,                 int> freq = new Dictionary<int,                                            int>();                                                 for (int i = 0; i < n; i++)      {          if(freq.ContainsKey(arr[i]))          {              freq[arr[i]] = freq[arr[i]] + 1;          }          else         {              freq.Add(arr[i], 1);          }          if (freq[arr[i]] > n / 2)              ans = arr[i];      }      return ans;  }      // Driver code  public static void Main(String[] args)   {      int []a = {2, 2, 1, 1, 1, 2, 2};      int n = a.Length;      Console.WriteLine(majorityNumber(a, n));  }  }     // This code is contributed by Rajput-Ji

Output:

2


Below is the time and space complexity of the above algorithm:-

Time Complexity : O(n)
Auxiliary Space : O(n)

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.