【LeetCodeゼロブラシから】Single Number

550 ワード

そう、私は伍声2009のファンで、今日から「ゼロ単列から」シリーズを真似て、菜鶏単刷LeetCode!
タイトル:
Given an array of integers, every element appears twice except for one. Find that single one.
回答:
実は違うことを探しています.この問題はtrickの構想を比較する必要がある:ビット演算.
考えてみてください.同じ2つの数で、異や操作を行う答えは何ですか.0です. 4^8^4^8 = 0. 中間間隔Nビットも同様である.
0任意の数と异なったり操作したりして、答えは何ですか?この数自体ではないか.
class Solution {
public:
    int singleNumber(int A[], int n) {
        int sum = A[0];
        for(int i = 1; i<n; i++)
            sum = sum ^ A[i];
        return sum;
    }
};