leetcode:Search for a Range

class Solution {
public:
    int searchLowerBound(int A[], int n, int target)
    {
        int left=0,right=n-1,res=-1;
        while(left<=right)
        {
            int mid = left+((right-left)>>1);
            if(A[mid]<target)
                left = mid+1;
            else if(A[mid]>target)
                right = mid-1;
            else
            {
                res = mid;
                right = mid-1;
            }
        }
        return res;
    }
    
     int searchHigherBound(int A[], int n, int target)
    {
        int left=0,right=n-1,res=-1;
        while(left<=right)
        {
            int mid = left+((right-left)>>1);
            if(A[mid]<target)
                left = mid+1;
            else if(A[mid]>target)
                right = mid-1;
            else
            {
                res = mid;
                left = mid+1;
            }
        }
        return res;
    }
    
    vector<int> searchRange(int A[], int n, int target) {
        vector<int> res;
        res.push_back(searchLowerBound(A,n,target));
        res.push_back(searchHigherBound(A,n,target));
        return res;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章