第31天(简单题&中等题 二分查找)
打卡第三十一天
1道简单题+2道中等题

题目:

思路:二分

代码:
class Solution {
public:
int singleNonDuplicate(vector<int>& nums) {
int left = -1, right = nums.size() / 2;// left从-1开始,right从数组长度的一半开始
while (left + 1 < right) {
int mid = left + (right - left) / 2;
(nums[mid * 2] != nums[mid * 2 + 1] ? right : left) = mid;// 如果nums[2*mid] != nums[2*mid+1],说明单个元素在左侧或当前位置,否则单个元素在右侧
}
return nums[right * 2];// 返回找到的单个元素
}
};
耗时≈一小时 二分题单暂时结束,明天开新题单

浙公网安备 33010602011771号