class Solution {
public:
int search(vector<int>& nums, int target) {
int l = 0, r = nums.size() - 1;
while (l <= r) {
int mid = l + ((r - l) / 2);
if (nums[mid] < target) {
l = mid + 1;
}
else if (nums[mid] > target){
r = mid - 1;
}
else {
return mid;
}
}
return -1;
}
};
2.左闭右开
class Solution {
public:
int search(vector<int>& nums, int target) {
int l = 0, r = nums.size();
while (l < r) {
int mid = l + ((r - l) / 2);
if (nums[mid] > target) {
r = mid;
}
else if (nums[mid] < target) {
l = mid + 1;
}
else {
return mid;
}
}
return -1;
}
};
leetcode_34
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
int l = 0, r = 0, count = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] == target) {
l = i;
count++;
}
}
r = l;
l = r - count + 1;
if (count == 0) {
return { -1, -1 };
}
else {
return { l, r };
}
}
};
leetcode_7041.左闭右闭class Solution {public: int search(vector<int>& nums, int target) { int l = 0, r = nums.size() - 1; while (l <= r) { int mid = l + ((r - l) / 2); if (nums[mid] < target) {