[LeetCode] Search for a Range

来源:互联网 发布:mac上卸载程序 编辑:程序博客网 时间:2024/05/29 16:57
class Solution {public:    vector<int> searchRange(int A[], int n, int target) {        vector<int> v;        int equal,m,k;        equal = index(A,n,target);        if(equal == -1){            v.push_back(-1);            v.push_back(-1);            return v;        }else{        m = k = equal;        while(A[m - 1] == A[equal] && m > 0) m --;        while(A[k + 1] == A[equal] && k < n - 1) k ++;        v.push_back(m);        v.push_back(k);        return v;        }    }    int index(int A[],int n,int num){        int first = 0,end = n - 1,mid;        int result = -1;        while(first <= end){            mid = (first + end)/2;            if(A[mid] == num)                return mid;            else if(A[mid] > num)                end = mid - 1;            else                first = mid + 1;        }        return result;    }};

0 0