有一個排序陣列 A[1,..,n],其中陣列中的每個元素都在 [0-9] 之間,并且數字可以在條件下重復,即 A[i] <= A[i 1] (小于等于)
有沒有辦法以 O(log n) 時間復雜度計算這個?
uj5u.com熱心網友回復:
使用二分搜索查找第一次出現的 0,然后是第一次出現的 1,依此類推,直到 9。這樣,您將知道0's, 1's, 2's..陣列中 etc 的確切計數。
陣列總和 = (1's count*1) (2's count * 2) ... (9's count * 9)。
總復雜度 =O(logN)運行二進制搜索 9 次。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/478423.html
