# Check if an array has a majority element

• Difficulty Level : Easy
• Last Updated : 21 Jun, 2021

Given an array, the task is to find if the input array contains a majority element or not. An element is
Examples:

```Input : arr[] = {2, 3, 9, 2, 2}
Output : Yes
A majority element 2 is present in arr[]

Input  : arr[] = {1, 8, 9, 2, 5}
Output : No```

A simple solution is to traverse through the array. For every element, count its occurrences. If the count of occurrence of any element becomes n/2, we return true.
An efficient solution is to use hashing. We count occurrences of all elements. If count becomes n/2 or more return true.
Below is the implementation of the approach.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

## C++

 `// Hashing based C++ program to find if there``// is a majority element in input array.``#include ``using` `namespace` `std;` `// Returns true if there is a majority element``// in a[]``bool` `isMajority(``int` `a[], ``int` `n)``{``    ``// Insert all elements in a hash table``    ``unordered_map<``int``, ``int``> mp;``    ``for` `(``int` `i = 0; i < n; i++)``        ``mp[a[i]]++;``    ` `    ``// Check if frequency of any element is``    ``// n/2 or more.``    ``for` `(``auto` `x : mp)``      ``if` `(x.second >= n/2)``          ``return` `true``;``    ``return` `false``;``}` `// Driver code``int` `main()``{``    ``int` `a[] = { 2, 3, 9, 2, 2 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a);``    ``if` `(isMajority(a, n))``        ``cout << ``"Yes"``;``    ``else``        ``cout << ``"No"``;``    ``return` `0;``}`

## Java

 `// Hashing based Java program``// to find if there is a``// majority element in input array.``import` `java.util.*;``import` `java.lang.*;``import` `java.io.*;` `class` `Gfg``{``    ``// Returns true if there is a``    ``// majority element in a[]``    ``static` `boolean` `isMajority(``int` `a[], ``int` `n)``    ``{``        ``// Insert all elements``        ``// in a hash table``        ``HashMap mp = ``new``                            ``HashMap();``        ` `        ``for` `(``int` `i = ``0``; i < n; i++)``        ` `            ``if` `(mp.containsKey(a[i]))``                ``mp.put(a[i], mp.get(a[i]) + ``1``);``        ` `            ``else` `mp.put(a[i] , ``1``);``        ` `        ``// Check if frequency of any``        ``// element is n/2 or more.``        ``for` `(Map.Entry x : mp.entrySet())``           ` `            ``if` `(x.getValue() >= n/``2``)``                ``return` `true``;``        ``return` `false``;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `a[] = { ``2``, ``3``, ``9``, ``2``, ``2` `};``        ``int` `n = a.length;``        ` `        ``if` `(isMajority(a, n))``            ``System.out.println(``"Yes"``);``        ``else``            ``System.out.println(``"No"``);``    ``}``}` `// This code is contributed by Ansu Kumari`

## Python3

 `# Hashing based Python``# program to find if``# there is a majority``# element in input array.` `# Returns true if there``# is a majority element``# in a[]``def` `isMajority(a):``    ` `    ``# Insert all elements``    ``# in a hash table``    ``mp ``=` `{}``    ` `    ``for` `i ``in` `a:``        ``if` `i ``in` `mp: mp[i] ``+``=` `1``        ``else``: mp[i] ``=` `1``    ` `    ``# Check if frequency``    ``# of any element is``    ``# n/2 or more.``    ``for` `x ``in` `mp:``        ``if` `mp[x] >``=` `len``(a)``/``/``2``:``            ``return` `True``    ``return` `False` `# Driver code``a ``=` `[ ``2``, ``3``, ``9``, ``2``, ``2` `]` `print``(``"Yes"` `if` `isMajority(a) ``else` `"No"``)` `#This code is contributed by Ansu Kumari`

## C#

 `// Hashing based C# program``// to find if there is a``// majority element in input array.``using` `System;``using` `System.Collections.Generic;` `class` `GFG``{``    ``// Returns true if there is a``    ``// majority element in a[]``    ``static` `Boolean isMajority(``int` `[]a, ``int` `n)``    ``{``        ``// Insert all elements``        ``// in a hash table``        ``Dictionary<``int``,``                   ``int``> mp = ``new` `Dictionary<``int``,``                                            ``int``>();``        ` `        ``for` `(``int` `i = 0; i < n; i++)``        ``{``            ``if``(mp.ContainsKey(a[i]))``            ``{``                ``var` `val = mp[a[i]];``                ``mp.Remove(a[i]);``                ``mp.Add(a[i], val + 1);``            ``}``            ``else``            ``{``                ``mp.Add(a[i], 1);``            ``}``        ``}``        ` `        ``// Check if frequency of any``        ``// element is n/2 or more.``        ``foreach``(KeyValuePair<``int``, ``int``> x ``in` `mp)``            ` `            ``if` `(x.Value >= n / 2)``                ``return` `true``;``        ``return` `false``;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main (String[] args)``    ``{``        ``int` `[]a = { 2, 3, 9, 2, 2 };``        ``int` `n = a.Length;``        ` `        ``if` `(isMajority(a, n))``            ``Console.WriteLine(``"Yes"``);``        ``else``            ``Console.WriteLine(``"No"``);``    ``}``}` `// This code is contributed by PrinciRaj1992`

## Javascript

 ``

Output:

`Yes`

Time Complexity: O(N)

Auxiliary Space: O(N)

My Personal Notes arrow_drop_up