Single Number II
来源:互联网 发布:晋江腾达陶瓷销售网络 编辑:程序博客网 时间:2024/06/05 18:52
这道题目有很多O(n)解法。
(1)可以用unordered_map。但这个很难说是O(n),哈希冲突是难以预测的,理论上可以算O(n).
class Solution {public: int singleNumber(int A[], int n) { if(n<=0) return -1; unordered_map<int,int> mp; for(int i=0;i<n;++i) mp[A[i]]++; for(auto p:mp){ if(p.second==1) return p.first; } }};
(2)位运算,这也许是该题的本意。下面的是最容易理解的方法。统计每位出现1的次数,只出现一次的位相或起来就是唯一的书。简单,但是系数有点高。
class Solution {public: int singleNumber(int A[], int n) { if(n<=0) return -1; int res=0; for(int i=0;i<32;++i){ int cnt=0,shift=1<<i; for(int j=0;j<n;++j) if(A[j]&shift) cnt++; if(cnt%3) res = res | shift; } return res; }};上面两个实现,大概都要80ms,效率算是差的。还有一种效率高的,我没实现且觉得不易理解。说明这方面的知识欠缺,等觉得容易了再来实现。
本文参考了http://blog.csdn.net/kenden23/article/details/13625297
0 0
- Single Number & Single Number II
- Single Number & Single Number II
- Single Number II - leetcode
- Leetcode: Single Number II
- Single Number II
- Single Number II
- [LeetCode] Single Number II
- LeetCode: Single Number II
- leetcode -- Single Number II
- [leetcode]Single Number II
- [LeetCode] Single Number II
- 【leetcode】Single Number II
- Single Number I & II
- LeetCode:Single Number II
- Leetcode: Single Number II
- Single Number II
- leetcode :Single Number II
- Leetcode Single Number II
- 479A - Expression
- WSN 路由协议
- XmlHttpRequest CORS 与 AJAX封装类
- C#(面向对象基础数组VS集合VS范型)下-2
- spring整合mybaits时Connections could not be acquired from the underlying database!异常解决
- Single Number II
- 让MAC系统为你唱中英文生日快乐歌
- c# ArrayList冒泡排序
- Android源码解析之Dialog
- 博客,我们是写给谁看的
- 自定义返回按钮时,iOS7手势返回遇到的问题
- 第十六周项目 4 为动态数组扩容
- 第十六周项目二——用指针玩字符串(1,字符串str1和str2的连接)
- LDA: 从头到尾彻底理解LDA (Latent Dirichlet Allocation)