Solution URL
https://leetcode.com/submissions/detail/413991852/
代码
class Solution {
public int singleNumber(int[] nums) {
//ans: https://www.youtube.com/watch?v=puXcQpwgcD0
//corner case
if(nums.length == 1) return nums[0];
int res = 0;
for(int i = 0; i < 32; i++){
int sum = 0;
for(int num: nums){
//对每一个数,都要对第i位累加,并且对3取模,实现不进位加法
sum += (num >> i) & 1;
sum %= 3;
}
//sum每次计算完左移i次,返还给res
res = res | (sum << i);
}
return res;
}
}