例如数组: ar[] = {7, 3, 5, 4, 5, 3, 4};
输出结果为: 7
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
int findSingle(int arr[], int len)
{
assert(len > 0);
int res = arr[0];
int i;
for (i = 1; i < len; i++) {
res ^= arr[i];
}
return res;
}
int main(int argc, char *argv[])
{
int ar[] = {7,3,5,4,5,3,4};
int len = sizeof(ar) / sizeof(ar[0]);
int res = findSingle(ar, len);
printf("res = %d\n", res);
return 0;
}
输出结果:
res = 7
原理: a xor a 结果为 0