1.数字在升序数组中出现的次数
题目:![](https://i-blog.csdnimg.cn/blog_migrate/2b52c0f0b3cbc98444b9d4e411298e8d.png)
思路:因为数组是升序的,目标值如果有多个就是连在一起的,因此我们可以查找目标值的范围即:上界和下界。
下界:如果存在目标值,则指向第一个目标值,否则,如果不存在,则指向大于目标值的第一个值。
上界:不管目标值存在与否,都指向大于目标值的第一个值。
!!!注意:要使用两边都闭的「搜索区间」,循环退出的条件,left
和 right
的更新逻辑,都要更改
function GetNumberOfK(data, k)
{
// write code here
var left = 0,
right = 0
// 寻找上界
var low = 0,
high = data.length -1
while (low <= high) {
var mid = low + Math.floor((high - low)/2)
if (data[mid]