题目类型:位运算
题目难度:中等
class Solution {
public int[] singleNumbers(int[] nums) {
int x = 0, y = 0, n = 0, m = 1;
for(int num : nums){
n ^= num;
}
while((n & m) == 0){
m <<= 1;
}
for(int i : nums){
if((m & i) != 0){
x ^= i;
} else{
y ^= i;
}
}
return new int[]{x, y};
}
}
class Solution {
public int singleNumber(int[] nums) {
Map<Integer, Integer> map = new HashMap();
for(int num : nums){
if(map.containsKey(num)){
int n = map.get(num);
map.replace(num, n, n+1);
}else{
map.put(num, 1);
}
}
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if((Integer)entry.getValue() == 1){
return (Integer)entry.getKey();
}
}
return 0;
}
}