给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
方法1:map统计
class Solution {
public int singleNumber(int[] nums) {
Map<Integer,Integer> map = new HashMap<>();
for(int i=0;i<nums.length;i++){
map.put(nums[i], map.getOrDefault(nums[i],0)+1);
}
for(int key:map.keySet()){
if(map.get(key) == 1){
return key;
}
}
return -1;
}
}
方法2:异或运算
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for(int num:nums){
res ^= num;
}
return res;
}
}