题目地址
题目的意思就是找到一个只有唯一一个数字的,如果搜索,时间复杂度是O(n ^ 2), n < 1000000,(一百万), 超时。
看了discuss, 发现位操作太巧妙了,所以做下笔记提醒自己。
位操作异或: 单纯的位而言
0 ^ 1 = 1;
1 ^ 1 = 0;
0 ^ 0 = 0;
贴上代码
#include <cstdio>
int main() {
int n;
while(scanf("%d", &n) != EOF && n) {
int b;
scanf("%d", &b);
for(int i = 1; i < n; i++) {
int a;
scanf("%d", &a);
b ^= a;
}
printf("%d\n", b);
}
}