某班级考试成绩按非严格递增顺序记录于整数数组 scores,请返回目标成绩 target 的出现次数。

示例 1:

输入: scores = [2, 2, 3, 4, 4, 4, 5, 6, 6, 8], target = 4
输出: 3

示例 2:

输入: scores = [1, 2, 3, 5, 7, 9], target = 6
输出: 0

提示:

0 <= scores.length <= 10(5)

-10(9) <= scores[i] <= 10(9)

scores 是一个非递减数组

-10(9) <= target <= 10(9)

有序数组,二分查找第一个大于等于target的索引,和第一个大于target的索引,相减即可

1
2
3
4
5
6
7
8
class Solution {
public:
int countTarget(vector<int> &scores, int target) {
auto l = lower_bound(scores.begin(), scores.end(), target);
auto r = upper_bound(scores.begin(), scores.end(), target);
return r - l;
}
};