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
- 下一篇: 《Linux4.0设备驱动开发详解》笔记