题目描述:
Given an array of integers nums
sorted in ascending order, find the starting and ending position of a given target
value.
Your algorithm's runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1]
.
Example 1:
Input: nums = [5,7,7,8,8,10], target = 8 Output: [3,4]
代码:
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
vector<int> result;
if(nums.size() == 0){
result.push_back(-1);
result.push_back(-1);
return result;
}
int l = 0, r = nums.size() - 1;
int left, right;
while(l <= r){ //第一次二分,找小于target的第一个数
int mid = (l + r) / 2;