34.Search for a Range

class Solution {
public:
    vector<int> searchRange(vector<int>& nums, int target) {
        vector<int> ret;
        ret.push_back(-1);
        ret.push_back(-1);
        if(nums.size() < 1) return ret;

        int l = 0;
        int r = nums.size()-1;
        while(l+1<r){
            int mid =(l+r)>>1;
            if(target < nums[mid]) {
                r = mid;
            } else if(target > nums[mid]) {
                l = mid;
            } else {
                r = mid;
            }
        }
        if(nums[l]==target) {
            ret[0] = l;
        } else if(nums[r] == target) {
            ret[0] =r;
        } else {
            return ret;
        }
        l=0;
        r=nums.size()-1;
        while(l+1<r){
            int mid = (l+r)>>1;
            if(target < nums[mid]){
                r = mid;
            } else if(target > nums[mid]) {
                l = mid;
            } else {
                l = mid;
            }
        }
        if(nums[r] == target) {

            ret[1] = r;
        } else if(nums[l] == target) {
            ret[1] = l;
        }

        return ret;
    }
};

results matching ""

    No results matching ""