数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
#include<stdlib.h>#include<iostream>#include<stdio.h>#include<vector>#include<time.h>#include<set>#include<map>#include<assert.h>#include<string>#include<stack>using namespace std;void find_data(int *data,int n){ int axor=0,data1=0,data2=0; for(int i=0;i<n;i++) axor^=data[i]; axor=axor-(axor&(axor-1)); for(int i=0;i<n;i++) { if(data[i]&axor) data1^=data[i]; else data2^=data[i]; } int a,b; a=min(data1,data2); b=max(data1,data2); printf("%d %d\n",a,b);}int main(){ int tnums; int value[1000005]; while(scanf("%d",&tnums)==1) { for(int i=0;i<tnums;i++) scanf("%d",&value[i]); find_data(value,tnums); } return 0; }/************************************************************** Problem: 1351 User: billforum Language: C++ Result: Accepted Time:950 ms Memory:5344 kb****************************************************************/

浙公网安备 33010602011771号