解題思路
一眼看到這道題就用二分啊,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