Leetcodeビット演算Single Number

854 ワード

この記事はsenlieオリジナルです。転載はこの住所を残してください。http://blog.csdn.net/zhengsenlie
Single Number 
Total Acceepted: 20063 
Total Submissions: 44658
Gven an array of integers、everelement appars twice except for one.Find that single one.
Note:Your algorithm shoruld have a linea runtime complexity.Could you implement it without using extra memory?
一組の配列には一つの要素以外の要素が二回現れます。この要素の考え方を探します。ビット演算です。異形・異型異種の操作は元素の順序を交換することができますので、元素の異種の順序は影響しません。
最後に再び現れた元素はいずれも異種になります。0と一回だけ現れた元素の違いに相当します。結果はまだその元素です。
プロモーション:この方法は、他の要素が偶数回出現するのにも適していますが、探している要素が奇数回発生する場合があります。
複雑度:時間O(n)、空間O(1)関連テーマ:Single Number II
class Solution {
public:
    int singleNumber(int A[], int n) {
        int temp = 0;
        for(int i = 0; i < n; i++){
            temp = temp ^ A[i];
        }
        return temp;
    }
};