《leetCode》:Single Number

题目

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

Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

思路

此题在《剑指Offer》中出现过。
根据 本身异或其本身的结果为0,0异或任意数A都等于A,根据题意在数组中只有一个数出现了一次,因此,将数组中的所有数进行异或即可求解

实现代码如下:

int singleNumber(int* nums, int numsSize) {
    if(nums==NULL||numsSize<1){
        return 0;
    } 
    int xorValue=nums[0];
    for(int i=1;i<numsSize;i++){
        xorValue^=nums[i];
    }
    return xorValue;
}

你可能感兴趣的:(LeetCode,SingleNumb)