1、题目描述
2、代码详解
public class SingleNumber_137 {
public static void main(String[] args){
int[] nums = {1, 5, 1, 1};
System.out.println(singleNumber(nums));
}
public static int singleNumber(int[] nums){
if(nums.length == 1){
return nums[0];
}
int res = 0;
for (int i = 0; i < 32; i++){
int sum = 0;
//所有数的最低位相加,然后%3
for(int num : nums){
sum += (num >> i) & 1; //&1后,取出最低位
sum %= 3;
}
// sum << i 把值放到对应的第i位
res = res | (sum << i);
}
return res;
}
}
https://www.bilibili.com/video/BV117411z74h?from=search&seid=15757563470252191663