首页 > 其他分享 >LeetCode在排序数组中查找元素的第一个和最后一个位置 AcWing 789. 数的范围(/二分查找)

LeetCode在排序数组中查找元素的第一个和最后一个位置 AcWing 789. 数的范围(/二分查找)

时间:2023-02-08 06:33:47浏览次数:49  
标签:nums int l1 mid 789 查找 ans LeetCode

原题解
相关内容辨析及不完整的二分归类

题目

约束

题解

y总有相关视频讲解(付费版)

class Solution {
public:
    vector<int> searchRange(vector<int>& nums, int target) {
        int n = nums.size();
        vector<int> ans(2, -1);
        if (n == 0) return ans;
        int l = 0, r = n - 1;
        while(l < r){
            int mid = (l + r) >> 1;
            if(nums[mid] >= target){
                r = mid; 
            }else{
                l = mid + 1;
            }
        }
        if(nums[l] != target){
            return ans;
        }else{
            ans[0] = l;
            int l1 = 0, r1 = n - 1;
            while(l1 < r1){
                int mid = (l1 + r1 + 1) >> 1;
                if(nums[mid] <= target){
                    l1 = mid; 
                }else{
                    r1 = mid - 1;
                }
            }
            ans[1] = l1;
        }
        return ans;
            
    }
};

标签:nums,int,l1,mid,789,查找,ans,LeetCode
From: https://www.cnblogs.com/chuixulvcao/p/17100360.html

相关文章