algorithm - 在 0-1 数组中查找所有 1 为 “on the left” 的 1 的个数?

标签 algorithm math binary-search

一个数组由 N 个 1 和 0 组成,所有 1 都在任何 0 之前。在数组中查找 1 的个数。很明显,使用二分查找是 O(log N)。是否有一种算法可以在 O(log(1 的数量)) 时间内完成此操作?

最佳答案

您实际上可以在 O(lg m) 时间内完成,其中 m 是 1 的数量。我不会给出整个算法,因为这看起来像是家庭作业,但这里有一个提示:尝试“反转”二分搜索,以便扩大而不是缩小搜索区域。

关于algorithm - 在 0-1 数组中查找所有 1 为 “on the left” 的 1 的个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372070/

相关文章:

javascript - 确定插入索引

java - 在 biginteger 上使用 java 默认二进制搜索

python - 在python中拆分大文本文件的有效方法

python - 最小化计算时间(即 : "print" slows it down)

javascript - 使用javascript检查重叠圆形元素的函数?

c# - UInt64 和 "The operation overflows at compile time in checked mode"- CS0220

c++ - C++ 中的二进制搜索 : Ascending + Descending Ordered Arrays

algorithm - 寻路任务——我怎样才能比 O ( n ) 更快地找到从 A 到 B 的最短路径上的下一个顶点?

algorithm - 欧拉计划问题 #78 的提示

java - Math.random() 和精度损失的好奇心