题解
昨天,没做,今天要做两道题了。。。。
很简单 二分 之前JAVA老师也让用JAVA写过,虽然忘了,但是思路还是一样的。
代码
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
vector<int> a;
int n = nums.size();
if(n == 0){
a.push_back(-1);
a.push_back(-1);
return a;
}
int l = 0,r = n - 1;
while(l <= r){
int mid = (l+r)/2;
if(nums[mid] == target){
int left = mid;
int right = mid;
int ans;
for(int i = left; i >= 0; i--){
if(nums[i] == target){
ans = i;
}
}
a.push_back(ans);
for(int i = right; i < n; i++){
if(nums[i] == target){
ans = i;
}
}
a.push_back(ans);
break;
}else if(nums[mid] > target){
r = mid - 1;
}else{
l = mid + 1;
}
}
if(a.empty()){
a.push_back(-1);
a.push_back(-1);
}
return a;
}
};