题目原文:
Given an array of integers, every element appears twice except for one. Find that single one.
题目大意:
给出一个数组,除了一个元素出现一遍以外,所有元素都出现了两遍。找到这个单个的元素。
题目分析:
把所有元素都按位异或起来,最终的异或值就是那个单独的元素。
原因:因为1⊕1=0⊕0=0,1⊕0=0⊕1=1,所以两个相同的数异或起来必为0,而0异或任何数都是它本身。
源码:(language:c)
public class Solution {
public int singleNumber(int[] nums) {
int single=0;
for(int i=0;i<nums.length;i++)
single=single^nums[i];
return single;
}
}
成绩:
1ms,38.79%,众数1ms,61.21%