欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode 之Single Number(13)

发布时间:2024/4/17 编程问答 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。