leetcode 初級之數(shù)組篇 05

只出現(xiàn)一次的數(shù)字

我們可以考慮 異或運算 ,它是滿足交換律和結合的,也就是說 abc = acb,這樣當我們遍歷數(shù)組,順次進行異或運算,那么最終的結果就是唯一的不重復數(shù)字。
Let us consider the above example.
Let ^ be xor operator as in C and C++.
//
//res = 7 ^ 3 ^ 5 ^ 4 ^ 5 ^ 3 ^ 4
//
//Since XOR is associative and commutative, above
//expression can be written as:
//res = 7 ^ (3 ^ 3) ^ (4 ^ 4) ^ (5 ^ 5)
//= 7 ^ 0 ^ 0 ^ 0
//= 7 ^ 0
//= 7

執(zhí)行耗時 4ms, 戰(zhàn)勝100% 的提交

int singleNumber(int* nums, int numsSize) {
    int result = nums[0];
    for (int i = 1; i < numsSize; i++) {
        result ^= nums[i];
    }
    return result;
}
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int arr[] = {1,1,2,3,2};
        int a = singleNumber(arr, 5);
        printf("%d\n",a);
        
    }
    return 0;
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容