# Check if an array has a majority element

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
```

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

A simple solution is to traverse through array. For every element, count its occurrences. If 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.

## 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 `

Output:

```Yes
```

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.

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.

Improved By : bhatnagarm, princiraj1992

Article Tags :
Practice Tags :

3

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