一题一句:符合要求的元素最多俩个,纯技巧题,记住。
public class Solution {
public List
majorityElement(int[] nums) {
int Maxer = 0;
for(int n : nums){
if( n>Maxer)
Maxer = n;
}
int n1,n2 = Maxer+1;
int c1,c2 = 0;
for(int n : nums){
if(n1 == n)
c1++;
else if(n2 == n)
c2++;
else if(c1 == 0){
n1 = n;
c1 = 1;
}
else if(c2 == 0){
n2 = n;
c2 = 1;
}
else{
c1--;
c2--;
}
}
c1 = 0;
c2 = 0;
for(int n : nums){
if(n==n1)
c1++;
if(n == n2)
c2++;
}
ArrayList
res = new ArrayList
();
if(c1 > Math.floor((nums.length)/3.0))
res.add(n1);
if(c2 > Math.floor((nums.length)/3.0))
res.add(n2);
return res;
}
}