题解 | #数组中只出现一次的两个数字#
数组中只出现一次的两个数字
https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ //位运算 #include <stdio.h> int* FindNumsAppearOnce(int* nums, int numsLen, int* returnSize ) { // write code here int xorResult = 0; int bitPos = 0; int *data = (int*)calloc(2, sizeof(int)); for (int i = 0; i < numsLen; i++) { xorResult ^= nums[i]; } bitPos = xorResult & (-xorResult); for (int i = 0; i < numsLen; i++) { if ((nums[i] & bitPos) != 0) { data[0] ^= nums[i]; } else { data[1] ^=nums[i]; } } if (data[0] > data[1]) { int temp = data[0]; data[0] = data[1]; data[1] = temp; } *returnSize = 2; return data; }