leetcode 34 在排序数组中查找元素的第一个和最后一个位置

94 阅读1分钟

leetcode 34 在排序数组中查找元素的第一个和最后一个位置

思路

经典二分查找。

题解

1:分为[l,mid]&[mid+1,r]时
int bsearch1(int l, int r, int target){
    while(l < r){
        int mid = (l + r) / 2;
        if(target < mid) r = mid;
        else l = mid - 1 
    }
    return l
}
​
2:分为[l,mid-1]&[mid,r]时
int bsearch2(int l, int r, int target){
    while(l<r){
        int mid = (l + r + 1) / 2;
        if(target < mid) r = mid;
        else l = mid - 1;
    }
}
​