找出正数中二进制1出现的次数
public int count1(int n) {
int res = 0;
while (n!=0){
res += n&1;
n>>>=1;
}
return res;
}
其他数都出现偶数次的数组中,找到唯一个出现奇数次的数
public int findTheOnce(int[]arrray){
int res = 0;
for(int a:arrray){
res ^=a;
}
return res;
}
其他都出现K次的数组中,找到唯一一个只出现1次的数
public int findTheOnceInKTimes(int[]array,int k){
int res = 0;
int sum = 0;
for(int i=0;i<31;i++) {
sum = 0;
for(int a:array){
if((a&(1<<i))!=0){
sum++;
}
}
if(sum % k == 1){
res += 1<<i;
}
}
return res;
}