leetcode_136题——Single Number(哈希表hashtable,multiset,位运算)
2015-04-17 17:03
429 查看
#include<iostream> //#include<bitset> //#include<map> #include<set> using namespace std; /*这道题,直接采用multiset来做,就太简单了,没啥好说的,就是全导进去,然后count下 就OK了,因为在set中查找都O(1)所以呢是线性的算法复杂度 */ int singleNumber(int A[], int n) { multiset<int> temp(A,A+n); int last_result=0; for(int i=0;i<n;i++) { if(temp.count(A[i])==1) { last_result=A[i]; break; } } return last_result; } int main() { bitset<1> a; cout<<sizeof(a)<<endl; system("pause"); return 1; }
这道题还可以采用位运算的方法,就可以将时间复杂度下降到O(n)了。将所有的数都进行异或最后得到的那个结果就是只有一个数的那个数
因为 相同的两个数异或为0
0^a=a
a^a=0
之间的异或可以调换位置
即 a^b^c....=a^a^b^b^c^c......
相关文章推荐
- 位运算——LeetCode 136.Single Number
- LeetCode[136] Single Number 位运算异或,HashMap(Java)
- Leetcode-位运算-136. Single Number
- Leetcode: Single Number(136,137). 位运算解法分析
- Leetcode No. 136. Single Number
- LeetCode Problem 136:Single Number
- leetcode-136 Single Number
- leetcode_c++:哈希:Single Number(136)
- [LeetCode136]Single Number寻找一个数组里只出现一次的数
- LeetCode 136. Single Number
- LeetCode 136 Single Number
- LeetCode 136. Single Number
- LeetCode 136 single number
- leetcode136 Single Number
- 【C++】【LeetCode】136. Single Number
- Leetcode:136. Single Number
- Leetcode:136.Single Number 找到数组里面的非重复数字,其他数字也最多重复两次
- LeetCode 136 Single Number(仅仅出现一次的数字)
- 【LeetCode】136. Single Number
- [LeetCode]题解(python):136-Single Number