leetcode 之Single Number(13)
生活随笔
收集整理的这篇文章主要介绍了
leetcode 之Single Number(13)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
看见这题我的第一反应是用哈希来做,不过更简洁的做法是用异或来处理,只要是偶数个都为0(0和任意数异或仍为数本身)。
int singleNumber(int A[], int n){int x = 0;for (int i = 0; i < n; i++)x ^= A[i];return x;} View Code
这题的思路更加巧妙,需好好琢磨,思路如下:
int singleNumber2(int A[], int n){int one, two, three;one = two = three = 0;for (int i = 0; i < n; i++){three = two & A[i];//已经出现了两次,再出现了一次two = two | (one &A[i]);one = one | A[i];//去掉出现三次的one = one &(~three);two = two &(~three);}return one;} View Code
转载于:https://www.cnblogs.com/573177885qq/p/5501771.html
总结
以上是生活随笔为你收集整理的leetcode 之Single Number(13)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: LTE Module User Docu
- 下一篇: 内存管理之slab分配器