题目描述
给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。
题解
二分查找
代码
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];}};