(二分法)力扣34.在排序数组中查找元素的第一个和最后一个位置

(二分法)力扣34.在排序数组中查找元素的第一个和最后一个位置_第1张图片

class Solution {
     
    public int[] searchRange(int[] nums, int x) {
     
        if (nums == null || nums.length == 0) return new int[]{
     -1,-1};
        int l = 0,r = nums.length - 1;
        while (l < r) {
     
            int mid = l + r >> 1;
            if (nums[mid] >= x) r = mid;
            else l = mid + 1; 
        }
        int ans1 = l;
        if (nums[l] != x) return new int[]{
     -1,-1};
        else {
     
            l = 0;
            r = nums.length - 1;
            while (l < r) {
     
                int mid = l + r + 1 >> 1;
                if (nums[mid] <= x) l = mid;
                else r = mid - 1;
            }
        }
        return new int[]{
     ans1,l};  
    }
}

你可能感兴趣的:(力扣,leetcode,排序算法,算法)