解题思路
一眼看到这道题就用二分啊,C++不多说,直接看代码注释
Python用了作弊方法,直接调用列表内置函数统计(.count()
)
代码
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1, mid, sum = 0, i;
while (left <= right)
{
mid = (left + right) / 2;
if (nums[mid] < target) left = mid + 1;
else if (nums[mid] > target) right = mid - 1;
else break;
}
i = left;
for (; i <= right; i++)
{
if (nums[i] == target)
sum++;
}
return sum;
}
};
class Solution:
def search(self, nums: List[int], target: int) -> int:
c = nums.count(target)
return c