一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个只出现一次的数字,编程实现。
void Find(int a[],int len,int*p,int *q){ int i = 0; int ret = 0; for (i = 0; i <len ; i++) { ret = ret^a[i];//相当于ret = 0^a[0]^...^a[len - 1],最后等于不同的两个数异或 } int j = 0; for (j = 0; j < 32; j++) //这里的j是有意义的——找到这两个数二进制补码中不同的位置. { if ((ret .
原创
2021-10-27 11:24:24 ·
87 阅读 ·
0 评论