[leetcode] Search for a Range

class Solution {
public:
    vector<int> searchRange(int A[], int n, int target) {
        //lower_bound返回第一个大于等于target的iterator的位置
        const int lf=distance(A,lower_bound(A,A+n,target));
        //upper_bound返回第一个大于target的iterator的位置
        //prev返回iterator的前一个位置
        //distance(t1,t2)返回t1和t2之间的元素个数
        const int rg=distance(A,prev(upper_bound(A,A+n,target)));
        if(A[lf]!=target){//not found
            return vector<int>{-1,-1};
        }else{
            return vector<int>{lf,rg};
        }
    }
};

你可能感兴趣的:([leetcode] Search for a Range)