Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 50318bd

Browse files
solves majority element ii in java
1 parent ea80d1e commit 50318bd

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@
184184
| 225 | [Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues) | [![Java](assets/java.png)](src/MyStack.java) [![Python](assets/python.png)](python/implement_stack_using_queues.py) | |
185185
| 226 | [Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree) | [![Java](assets/java.png)](src/InvertBinaryTree.java) [![Python](assets/python.png)](python/invert_binary_tree.py) | |
186186
| 227 | [Basic Calculator II](https://leetcode.com/problems/basic-calculator-ii) | [![Java](assets/java.png)](src/BasicCalculatorII.java) | |
187-
| 229 | [Majority Element II](https://leetcode.com/problems/majority-element-ii) | | |
187+
| 229 | [Majority Element II](https://leetcode.com/problems/majority-element-ii) | [![Java](assets/java.png)](src/MajorityElementII.java) | |
188188
| 230 | [Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst) | | |
189189
| 231 | [Power of Two](https://leetcode.com/problems/power-of-two) | [![Java](assets/java.png)](src/PowerOf2.java) [![Python](assets/python.png)](python/is_power_of_2.py) | |
190190
| 232 | [Implement Queue Using Stacks](https://leetcode.com/problems/implement-queue-using-stacks) | [![Java](assets/java.png)](src/MyQueue.java) [![Python](assets/python.png)](python/implement_queue_using_stacks.py) | |

‎src/MajorityElementII.java‎

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// https://leetcode.com/problems/majority-element-ii
2+
// T: O(N)
3+
// S: O(1)
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
public class MajorityElementII {
9+
public List<Integer> majorityElement(int[] nums) {
10+
int candidate1 = 0, candidate2 = 0, frequency1 = 0, frequency2 = 0;
11+
for (int element : nums) {
12+
if (element == candidate1) frequency1++;
13+
else if (element == candidate2) frequency2++;
14+
else if (frequency1 == 0) {
15+
candidate1 = element;
16+
frequency1 = 1;
17+
} else if (frequency2 == 0) {
18+
candidate2 = element;
19+
frequency2 = 1;
20+
} else {
21+
frequency1--;
22+
frequency2--;
23+
}
24+
}
25+
return confirmCandidates(nums, candidate1, candidate2);
26+
}
27+
28+
private List<Integer> confirmCandidates(int[] array, int candidate1, int candidate2) {
29+
final List<Integer> result = new ArrayList<>();
30+
if (frequency(array, candidate1) > array.length / 3) result.add(candidate1);
31+
if (candidate2 != candidate1 && frequency(array, candidate2) > array.length / 3) result.add(candidate2);
32+
return result;
33+
}
34+
35+
private int frequency(int[] array, int val) {
36+
int count = 0;
37+
for (int element : array) {
38+
if (element == val) count++;
39+
}
40+
return count;
41+
}
42+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /