原题:https://oj.leetcode.com/problems/single-number/
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?
1)两个相同的数进行异或操作,结果为0
2)0跟任何数a进行异或,结果为a
3)异或操作满足交换律,结合律
so......答案估计大家都猜到了,只需几行代码:
public class SingleNumber {
public int singleNumber(int[] A) {
int yihuoResult = A[0];
for(int i=1;i<A.length;i++) {
yihuoResult = yihuoResult^A[i];
}
return yihuoResult;
}
}