给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
public int singleNumber(int[] nums) {
int res = 0;
for (int i = 0; i < nums.length; i++) {
res ^= nums[i];
}
return res;
}
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
public int singleNumber(int[] nums) {
int a = 0;
int b = 0;
for (int i = 0; i < nums.length; i++) {
a = a ^= nums[i] & ~b;
b = b ^= nums[i] & ~a;
}
return a;
}