package leetcode;
public class offer_56_2 {
public int singleNumber(int[] nums) {
//用一个数组记录每一位出现的次数,如果出现三次那一定是三的倍数,取余后就是当前值
int[] arr=new int[32];
for(int num:nums) {
for(int i=0;i<32;i++) {
//更新第i位的次数
arr[i]+=num&1;
//更新到i+1位
num=num>>1;
}
}
int temp=0;
//取余后回复出temp的值
for(int i=0;i<32;i++) {
temp |=(arr[i]%3)<<i;
}
return temp;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
offer_56_2 off=new offer_56_2();
int nums[]={9,1,7,9,7,9,7};
System.out.println(off.singleNumber(nums));
}
}