一个数组(nums)中只有两个数只出现一次,其余数都出现两次,找出出现一次的两个数//0和数组中全部数字异或得到两个只出现一次的数字的异或值int ret=0;for(int i=0;i<numsSize;i++){ ret^=nums[i]}//找出ret的第m位为1的位int m=0;while(m<32){ if(ret&(1<<m)) break; else ++m;}//把第m位不同的数字分开异,然后与0异或找出两个数int x1=0,x2=0;for(int i=0;i<numsSize;i++){ if(nums[i]&(1<<m)) { x1^=nums[i]; } else { x2^=nums[i] }//申请空间返回两个出现一次的数int* retArr=(int*)malloc(sizeof(int)*2);retArr[0]=x1;retArr[1]=x2;*returnSize=2;return retArr;}