版权信息 转载请注明出处 [ametake版权所有]http://blog.csdn.net/ametake欢迎来看看
题目来源:九章算法面试题
果然是个面试题···考察快速思维和反应的能力
题目描述 Description
有n个数(n是奇数),其中n-1个数两两成对,有1个数落单,找出这个数。要求O(n)的时间复杂度,O(1)的空间复杂度
输入描述 Input Description
第一行输入一个n, n是大于等于1的奇数
第二行包含n个整数
输出描述 Output Description
输出那个落单的数
样例输入 Sample Input
3
1 7 1
样例输出 Sample Output
7
数据范围及提示 Data Size & Hint
1<=n<=4000001 n是一个奇数
其实就是异或 因为一个数异或某个数a两次还是它本身 所以一开始设置为0 把所有的数异或一次 最后剩下的就是落单的数了
不能开数组,因为时间是1空间是n···
所以这个题目就这么简单,感谢TY君推题O(∩_∩)O~
(⊙v⊙)嗯?我竟然忘了加上代码菌= =
#include
using namespace std;
int main()
{
int n,i,ans=0;
scanf("%d",&n);
while (n--)
{
scanf("%d",&i);
ans^=i;
}
printf("%d",ans);
return 0;
}
——遥想公瑾当年,小乔初嫁了,雄姿英发。