给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。
示例 1:
输入: [1,1,2,3,3,4,4,8,8] 输出: 2
示例 2:
输入: [3,3,7,7,10,11,11] 输出: 10
int singleNonDuplicate(int* nums, int numsSize){ int temp = 0; int i = 0; if(numsSize == 0) return NULL; temp = nums[0]; for( i = 1; i < numsSize; i++) { temp = temp^nums[i]; } return temp; }
我用的以上解法 显然不是最优解 最优解应该是使用二分法