Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
数组中除了某个元素出现一次,其他都出现两次,找出只出现一次的元素。
一个数字和自己异或 结果为 0,一个数字与0异或 结果还为它自己
比如数组:[6,6,3] ,6和6异或为0,0与3异或为3,因此将数组中所有的元素异或一遍即为最终的结果:
1 public class Solution { 2 public int singleNumber(int[] A) { 3 4 int n = A.length; 5 int result = 0; 6 7 for(int i = 0 ; i < n ; i ++) 8 result ^= A[i]; 9 10 return result; 11 } 12 }