-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathSolution.java
36 lines (36 loc) · 922 Bytes
/
Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class Solution {
public List<Integer> majorityElement(int[] nums) {
List<Integer> ans=new ArrayList<Integer>();
if (nums.length==0) {
return ans;
}
if (nums.length==1) {
ans.add(nums[0]);
return ans;
}
if (nums.length==2) {
ans.add(nums[0]);
if (nums[1]!=nums[0]) {
ans.add(nums[1]);
}
return ans;
}
Arrays.sort(nums);
int l=nums.length/3;
for (int i = 0; i < nums.length-l;) {
if (nums[i+l]==nums[i]) {
ans.add(nums[i]);
i+=l;
}else {
i++;
}
}
for (int i = 1; i < ans.size(); i++) {
if (ans.get(i)==ans.get(i-1)) {
ans.remove(i);
i--;
}
}
return ans;
}
}