相当简单的题目
使用异或就能解决了。
因为A XOR A = 0; A XOR B XOR A = B;
1. 因为排序再查找不是O(n)的时间复杂度
2. 使用HashTable 可以时间O(n),但是不可以空间O(n)。 Hash可以扫2次,第二次扫出次数为1的。
ref: http://blog.csdn.net/fightforyourdream/article/details/14514255
代码如下:
public class Solution {
public int singleNumber(int[] A) {
if (A == null) {
return 0;
}
int ret = 0;
for (int i = 0; i < A.length; i++) {
ret ^= A[i];
}
return ret;
}
}