一组数据中只有两个数据单独出现,其余数据都是成对出现,找出 这些数据中单独的两个数并输出。
#include#include #include #pragma warning(disable:4996) void findnum(int num[],int len,int *xp,int *yp){ assert(xp); assert(yp); *xp = 0; *yp = 0; step1 int n = num[0]; for (int i = 1; i < len; i++){ n ^= num[i]; } //1.n一定不是0! //2.n的二进制序列中,一定至少有一个1 //3.x,y二进制,相同的部分一定是0,不同的部分一定是1,反过来,如果n中有一个比特位是1,一定是x,y对应的比特位是不同的 step2 int flag = 1; int i = 0; while (i 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)