Majority Element II LeetCode solution in Java

1
class Solution {
2
public List<Integer> majorityElement(int[] nums) {
3
int val1 = nums[0], val2 = nums[0], cnt1 = 1, cnt2 = 0;
4
for (int i = 1; i < nums.length; i++) {
5
if (val1 == nums[i]) {
6
cnt1++;
7
} else if (val2 == nums[i]) {
8
cnt2++;
9
} else {
10
if (cnt1 == 0) {
11
val1 = nums[i];
12
cnt1++;
13
} else if (cnt2 == 0) {
14
val2 = nums[i];
15
cnt2++;
16
} else {
17
cnt1--;
18
cnt2--;
19
}
20
}
21
}
22
int check1 = 0, check2 = 0;
23
for (int i = 0; i < nums.length; i++) {
24
if (val1 == nums[i]) check1++;
25
else if (val2 == nums[i]) check2++;
26
}
27
List<Integer> ans = new ArrayList<>();
28
if (check1 > nums.length / 3) ans.add(val1);
29
if (check2 > nums.length / 3) ans.add(val2);
30
return ans;
31
}
32
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0