结果
运行结果:
代码如下:
class Solution {
public int singleNumber(int[] nums) {
int temp = 0;
for (int i = 0; i < nums.length; i++) {
temp ^= nums[i];
}
return temp;
}
}
过程
本身先是用了快排,先排了下序,然后遍历寻找只出现了一次的数据,后来看了评论才发现异或是正解(刚开始没注意到要时间复杂度为O(n),不过即使注意到这个我也想不到异或,这方面还是太差),异或会把相同的位设为0,这样两两出现的数据异或后就是0,剩下的就是单一的数据了,这里面异或是有交换律的!!!