> For the complete documentation index, see [llms.txt](https://coding-9.gitbook.io/untitled/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://coding-9.gitbook.io/untitled/array/medium/169.-majority-element-moore.md).

# 169. Majority Element / Moore

## Problem Statement

<br>

Given an array `nums` of size `n`, return *the majority element*.

The majority element is the element that appears more than `⌊n / 2⌋` times. You may assume that the majority element always exists in the array.

&#x20;

**Example 1:**

<pre><code><strong>Input: nums = [3,2,3]
</strong><strong>Output: 3
</strong></code></pre>

**Example 2:**

<pre><code><strong>Input: nums = [2,2,1,1,1,2,2]
</strong><strong>Output: 2
</strong></code></pre>

&#x20;

**Constraints:**

* `n == nums.length`
* `1 <= n <= 5 * 104`
* `-109 <= nums[i] <= 109`

## Intuition

```
Moore voting algorithm

2 2 1 1 | 2 2 1 1 |  3
Basically check windows all windows will get calncelled
Max is returned
```

### Links

<https://leetcode.com/problems/majority-element/>

### Video Links

<https://www.youtube.com/watch?v=AoX3BPWNnoE&list=PLgUwDviBIf0rPG3Ictpu74YWBQ1CaBkm2&index=17>

### Approach 1:

```
Moore voting algorithm
```

{% code title="C++" lineNumbers="true" %}

```cpp
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int el=0;
        int count=0;

        for(int i=0;i<nums.size();i++){
            if(count==0)
                el=nums[i];

            if(nums[i]==el)
                count++;
            else
                count--;
        }

        return el;
        

    }
};
```

{% endcode %}

### Approach 2:

```
```

{% code title="C++" lineNumbers="true" %}

```cpp
```

{% endcode %}

### Approach 3:

```
```

{% code title="C++" lineNumbers="true" %}

```cpp
```

{% endcode %}

### Approach 4:

```
```

{% code title="C++" lineNumbers="true" %}

```cpp
```

{% endcode %}

### Similar Problems

###
