(1) 给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按任意顺序返回答案.
输入:nums = [1,2,1,3,2,5]
输出:[3, 5]
解释:[5, 3] 也是有效的答案
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<malloc.h>
int main() {
int nums[ ] = { 1,2,1,3,2,5,5,6,6,9 };
int a = 0;
int c = 0;
int d = 0;
for (int i = 0; i <10; i++) {
a ^= nums[i];
}
int b = a & (-a);//这里是与运算,求第一个不为0的一位在哪?
for (int i = 0; i < 10; i++) {
if (nums[i] & b) {
c ^= nums[i];
}
else{
d ^= nums[i];
}
}
printf("[%d,%d]", c,d);
}