# LeetCode – Majority Element II (Java)

Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.

Java Solution

This problem is similar to Majority Element I. Time = O(n) and Space = O(1).

```public List<Integer> majorityElement(int[] nums) { List<Integer> result = new ArrayList<>();   Integer n1 = null, n2 = null; int c1 = 0, c2 = 0;   for (int i : nums) { if (n1 != null && i == n1.intValue()) { c1++; } else if (n2 != null && i == n2.intValue()) { c2++; } else if (c1 == 0) { c1 = 1; n1 = i; } else if (c2 == 0) { c2 = 1; n2 = i; } else { c1--; c2--; } }   c1 = c2 = 0;   for (int i : nums) { if (i == n1.intValue()) { c1++; } else if (i == n2.intValue()) { c2++; } }   if (c1 > nums.length / 3) result.add(n1); if (c2 > nums.length / 3) result.add(n2);   return result; }```

Reference:
A Linear Time Majority Vote Algorithm

Category >> Algorithms >> Interview
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
```<pre><code>
String foo = "bar";
</code></pre>
```
• alexwest11

Given an integer array of size n, find all elements that appear more

———-

i am not sure it is solution for ALL. , just any element n/3+ repeated!!

for reference , see

https://www.geeksforgeeks.org/n3-repeated-number-array-o1-space/

• West

first sample is not space O(n) блять

• Dima

да это же просто пиздец…