标签:leetcode
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
中等
这题要线性时间,不使用额外存储,我觉得挺难的,我没做出来,看来网上的答案。方法很好,理解后也不是很难,只是之前没 做过类似的,估计不容易想出来。
int singleNumber(int A[], int n) {
int one = 0, two = 0, three = 0;
for (int i = 0; i < n; ++i) {
three = two & A[i];
two |= one & A[i];
one |= A[i];
one ^= three;
two ^= three;
}
return one;
}
标签:leetcode
原文地址:http://blog.csdn.net/booirror/article/details/43955419