文章目录
题目
代码(7.18 首刷自解)
还是要注意细节,边界问题很容易出错。
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1;
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
if(left >= nums.size() || nums[left] != target)
return 0;
int res = 0;
while(left < nums.size() && nums[left] == target) {
res++;
left++;
}
return res;
}
};