- 题目描述
给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这
个数。
- 题解
二分查找
- 代码
class Solution {
public:
int singleNonDuplicate(vector<int>& nums) {
int n=nums.size();
int l=0,h=n-1;
while (l<h){
int m=l+((h-l)>>1);
if (m&1) m--;
if (nums[m]==nums[m+1]) l=m+2;
else h=m;
}
return nums[l];
}
};