二分查找元素,然后二分查找左边界,再查找右边界,最后右边界减去左边界就是指定元素个数。这道题实际上是如下三道题的综合。
1) 在一个有序数组中,找某个数是否存在 。...2) 在一个有序数组中,找>=某个数最左侧的位置 。
3) 在一个有序数组中,找的位置 。...arr := []int{0, 1, 2, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8}
v := 3
fmt.Println(v, "的个数是...int {
L := 0
R := len(arr) - 1
M := -1
// L..R
mid := -1
//找目标值并且缩小左边界L和右边界R的范围...L = mid + 1
}
}
LL = index //左边界确定下来了
R = RR //原始右边界已经发生变化,需要恢复到以前的边界