题目链接:
LeetCode 229 — Majority Element II
AC代码:
public class Problem229 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] name ={1,1,1,2,3};
majorityElement(name);
}
public static List<Integer> majorityElement(int[] nums) {
List <Integer> list =new ArrayList<Integer>();
int a=-1,b=-1,n1=0,n2=0;
for(int i=0;i<nums.length;i++){
if(nums[i]==a){
n1++;
}
else if(nums[i]==b){
n2++;
}
else{
if(n1==0){
n1++;
a=nums[i];
}
else if(n2==0){
n2++;
b=nums[i];
}
else{
n1--;
n2--;
}
}
}
n1=0;
n2=0;
for(int i=0;i<nums.length;i++){
if(nums[i] == a)
n1++;
if(nums[i]==b)
n2++;
}
if(n1>nums.length/3)
list.add(a);
if(n2>nums.length/3)
list.add(b);
return list;
}
}