第31天(简单题&中等题 二分查找)

打卡第三十一天
1道简单题+2道中等题

image

题目:
image

思路:二分
image

代码:

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];// 返回找到的单个元素
    }
};

耗时≈一小时 二分题单暂时结束,明天开新题单

posted @ 2025-11-20 22:59  Wy0518  阅读(0)  评论(0)    收藏  举报