Leetcode_Alog.136- Single Number
2015-06-15 00:44
225 查看
最近一直学linux,而且一直没有注意总结,有种不踏实的感觉,那就刷刷题,写写博沉淀沉淀吧。
Leetcode是个面向面试的类似OJ的平台,据说它的题目很简洁而且切中的知识点都是经典的数据结构和算法,快要找实习了,就当复习复习DSA吧。
![](http://img.blog.csdn.net/20150615000548222?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveTUxOTQ3NjEzMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1.my solution
最先想到的就是hash table,只要table足够大,就能使得数组中每个数对应一个坑,起始坑里数字为0,该坑对应的数出现一次变为1,再出现一次又变为0,然后遍历找出坑里数为1对应的数即可。
下面是代码,用了bitset,感觉节约了空间,,要注意处理负数。感觉数据量不大,40000就可以ac了。
2.better solution
在discuss中看到了更好的方法,相比之下自己的方法就逊多了。
主要的思想是利用异或,对于每个int整数来说底层都有唯一的表示,两个数a,b进行a xor b
得到0 ,如果只出现一次, a xor 0 还是为a。通过这个方法可以快速找到唯一.
ms.
Leetcode是个面向面试的类似OJ的平台,据说它的题目很简洁而且切中的知识点都是经典的数据结构和算法,快要找实习了,就当复习复习DSA吧。
1.my solution
最先想到的就是hash table,只要table足够大,就能使得数组中每个数对应一个坑,起始坑里数字为0,该坑对应的数出现一次变为1,再出现一次又变为0,然后遍历找出坑里数为1对应的数即可。
下面是代码,用了bitset,感觉节约了空间,,要注意处理负数。感觉数据量不大,40000就可以ac了。
<strong><span style="font-family:Microsoft YaHei;">class Solution { public: int singleNumber(vector<int>& nums) { bitset<40000>b; int n=nums.size(); for(int i=0;i!=n;++i) { int k=nums[i]%20000; b.flip( 19999+k ); } for(int i=0;i!=40000;++i) { if(b.test(i)) { return i-19999;} } } };</span></strong>Runtime: 28 ms。
2.better solution
在discuss中看到了更好的方法,相比之下自己的方法就逊多了。
主要的思想是利用异或,对于每个int整数来说底层都有唯一的表示,两个数a,b进行a xor b
得到0 ,如果只出现一次, a xor 0 还是为a。通过这个方法可以快速找到唯一.
class Solution { public: int singleNumber(vector<int>& nums) { int res=0; for(int i=0;i!=nums.size();++i) res ^= nums[i]; return res; } };Runtime: 20
ms.
相关文章推荐
- 获取网页里的邮箱
- 网站优化包含从创新式写作到编码的各种规程和活动
- Linux进程调度CFS算法实现分析
- 头一次打开可以正常编译运行,但是稍有改动就不行了,就连加个分好再删除分好都不行了
- 知识梳理:Android子线程中更新UI的3种方法
- The final local variable xxx cannot be assigned, since it is defined in an enclosing type
- Java关键字transient和volatile小结(转)
- 为什么匿名内部类和局部内部类只能访问final变量
- 【Android UI设计】Dialog对话框详解(二)
- Python之第一个程序
- java.io.Serializable浅析
- 各种排序的比较
- Intellij IDEA 下有些中文变成了小方块
- Path相关方法讲解(一)
- 继承中的类型兼容性原则
- 继承中的类型兼容性原则
- import cx_Oracle 错误: ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。(暂未解决)
- Javascript:是你的高阶函数
- 一些数字音频的基础定义
- 需找字符串中重复的最长子串