在 O(log n) 时间复杂度中查找排序数组的总和

Finding sum of a sorted array in O(log n) Time Complexity

有一个排序数组 A[1,..,n],其中数组中的每个元素都在 [0-9] 之间,数字可以重复,条件是 A[i] <= A[i+ 1](小于等于)

有没有办法在 O(log n) 时间复杂度内计算这个?

使用二进制搜索查找第一次出现的 0,然后是第一次出现的 1,依此类推,一直到 9。这样,您就会知道 0's, 1's, 2's.. 等的确切计数在数组中。

数组总和=(1's count*1) + (2's count * 2) ... (9's count * 9).

总复杂度 = O(logN) 运行 二分查找 9 次。