[LeetCode] Single Number

Single Number:
Given an array of integers, every element appears twice except for one. Find that single one.

給出一個整數數組,數組裏的元素除了一個只出現一次之外,其它元素均出現兩次,求得並返回只出現一次的元素。
範例: [1,2,3,1,3,] -> 返回 2

思路: 其它元素均出現兩次,只有一個元素只出現一次,要求返回這個只出現一次的元素。我們可以想到位操作異或,異或的特性爲:相同爲0,不同爲1。對整個數組異或遍歷一次,凡是出現兩次的數,因爲兩個相同的數異或等於0 ,因此最後得到的結果即爲只出現一次的數。

int singleNumber(int* nums, int numsSize)
 {
    int order = 0;
    int value = 0;

    while(order < numsSize)
    {
        value ^= nums[order++];
    }

    return value;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章