题目描述
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1] 输出: 1
示例 2: 输入: [4,1,2,1,2] 输出: 4
思路分析一
暴力法外层循环每次设定当前值为寻找值,内层循环寻找是否有相等的值
代码实现
思路分析二
哈希表实现,记录每个元素出现的次数,然后选出次数为1的。
代码实现
思路分析三
异或,因为列表中只有一个是不同的,所以相同的异或会为0抵消,最后剩下的就是单独的数字。
代码实现
//异或
public int singleNumber2(int[] nums){
int ans = 0;
for(int i = 0;i<nums.length;i++){
ans^=nums[i];
}
return ans;
}