假设我有一个已排序的浮点数组a [0],...,a [n-1]。
我得到一个数字m<<n
,表示等间隔的数量。如何有效地找到包含最多数字的bin的上边界?
答案 0 :(得分:3)
每个区域都有(a[n-1] - a[0]) / m
个值 - 如果有的话会四舍五入。您需要对数据进行一次传递,在此过程中,您将确定数据是否越过bin边界,如果是,则重置bin-in-bin计数器,否则递增该计数器。在重置之前和结束之前 - 如果bin-bin中的数字是你所见过的最大值,请在你人口最多的bin“solution”解决方案变量中记录bin的上边界。
答案 1 :(得分:1)
Tony D发布的答案并不是最有效的。为每个休息值调用lower_bound
更有效。然后,成本将是O(mlog n)而不是O(n)。