2021-05-15:数组为{3, 2, 2, 3, 1},查询为(0, 3, 2),意思是在数组里下标0~3这个范围上,有几个2?答案返回2。...请返回所有查询的结果。
福大大 答案2021-05-15:
遍历存map。map的键是数组中的值,map的值是存数组下标的数组。...比如{3,2,2,3,1},保存到map里就是{3:[0,3],2:[0,1],1:[4]},然后用二分法查找某个数的索引范围。
代码用golang编写。...mostRight := -1
for L <= R {
mid := L + ((R - L) >> 1)
if arr[mid] < limit {...}
}
return mostRight + 1
}
执行结果如下:
?