Search for a Range

来源:互联网 发布:翻墙后有什么福利软件 编辑:程序博客网 时间:2024/06/07 19:20
class Solution {public:    vector<int> searchRange(int A[], int n, int target) {        vector<int> ret;        int left=0,right=n-1,mid=0;        //二分查找        while(left<=right)        {            mid=left+(right-left)/2;            if(target==A[mid])            {                break;            }            else if(target>A[mid])            {                left=mid+1;            }            else            {                right=mid-1;            }         }        if(left>right)        {            ret.push_back(-1);            ret.push_back(-1);        }        else        {            int start=mid,end=mid;            while(start>=0 && target==A[start])            {                start--;            }            while(end<n && target==A[end])            {                end++;            }            ret.push_back((start>=0)?(start+1):0);            ret.push_back((end<n)?(end-1):(n-1));        }        return ret;    }};

0 0
原创粉丝点击