​https://leetcode.com/problems/search-for-a-range/​

class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
vector<int> range={-1,-1};
int len=nums.size();
if(len==0)
return range;

int ll=0,lr=len-1;
while(ll<=lr){
int mid=ll+(lr-ll)/2;
if(target<=nums[mid])
lr=mid-1;
else
ll=mid+1;
}

int rl=0,rr=len-1;
while(rl<=rr){
int mid=rl+(rr-rl)/2;
if(target>=nums[mid])
rl=mid+1;
else
rr=mid-1;
}
if(ll<=rr){
range[0]=ll;
range[1]=rr;
}
return range;
}
};


注意最后判断区间是否存在的条件的是ll<=rr
比如说
nums={0,1,1,1},target=3

ll=4,rr=3,此时说明target不存在。

以前还写过左开右闭区间的版本。没有这个好理解。以后就用这个全闭空间的版本。