这道题很不错,用位运算巧妙的解决。一开始我还想过multiset等等。^位运算才是王道,直接可以解决一堆数中,查找某个奇数个数的数字。
所有数字, ^ 自身等于0,这是这道题的核心。
另外再写一下 ^的常用用法,
用作swap, a=a^b;
b=b^a;
a=a^b;
这个式子就相当于 a=a^b^a。 等同于 a=b;
翻转数字,1^n。
class Solution { public: /* * @param A: An integer array * @return: An integer */ int singleNumber(vector<int> &A) { // write your code here int ans=0; int s=A.size(); for(int i=0;i<s;i++) { ans^=A[i]; } return ans; } };
内容来源于网络如有侵权请私信删除
- 还没有人评论,欢迎说说您的想法!