方法一:使用位操作
class Solution {
public int singleNumber(int[] nums) {
int key;
int result=0;
for(int i=0;i<32;i++){
key=0;
for(int j=0;j<nums.length;j++){
key+=(nums[j]>>i)&1;
}
result|=((key%3)<<i);
}
return result;
}
}
注意
1.java中数组的长度是个属性,而不是一个方法
2.Java中的|=是连续或的意思。利用该方法可以将二进制进行拼接成一个完整的二进制数
方法二:使用map(字典),进行统计各个元素出现的次数
# #使用map
if len(nums)<1:
return nums[0]
dic = dict()
for i in nums:
if i not in dic.keys():
dic[i] = 1
else:
dic[i]+=1
for i in dic:
if dic[i] ==1:
return i