给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。

示例 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;
}

我用的以上解法 显然不是最优解 最优解应该是使用二分法

posted on 2019-06-04 17:20  闲云潭影  阅读(193)  评论(0编辑  收藏  举报