leetcode:Search for a Range

来源:互联网 发布:长短时记忆网络 编辑:程序博客网 时间:2024/05/03 18:09
class Solution {public:    vector<int> searchRange(int A[], int n, int target) {        vector<int> result;        result.push_back(leftBound(A,n,target));        result.push_back(rightBound(A,n,target));        return result;    }        int leftBound(int A[], int n, int target)    {        int ans = -1;        int begin = 0, end = n-1;        while(begin <= end)        {            int mid = begin + (end- begin )/2;            if(A[mid] >= target)            {                ans = mid;                end = mid-1;            }            else            {                begin = mid+1;            }        }        if(ans >= 0 && A[ans] == target)            return ans;        else            return -1;    }        int rightBound(int A[], int n, int target)    {        int ans = -1;        int begin = 0, end = n-1;        while(begin <= end)        {            int mid = begin + (end-begin)/2;            if(A[mid] <= target)            {                begin = mid +1;                ans = mid;            }            else                end = mid-1;        }        if(ans >= 0 && A[ans] == target)            return ans;        return -1;    }};

0 0
原创粉丝点击