給定一組n個整數和一個整數x。你能設計一個算法來檢查給定集合中的k個整數是否加起來爲x? 的複雜性應爲O(n ^(K-1)* logn)時間設計一個算法來檢查給定集合中是否有k個整數加起來得到x
回答
- 排序列K數字
- 採取組合(所有n ^(K-1)其中)
- 對於每個組合檢查,如果x-總和(組合)是陣列中(二進制搜索,爲O(log(n))的
最終複雜性:爲O(n ^(K-1)* logn)時間
如果您有足夠的空間(n ^(k/2)長度),您也可以在O(n ^(k/2)log(n)陣列。
計算總和爲O(1),因爲您可以重新使用您爲上一個組合進行的計算。如果已經計算(a + b + c + d),(a + b + c + e)=(a + b + c + d)-d + e。
我們如何找到'總和(組合)'?那麼把'O(n)'的複雜度提高到'O(n ^(k-1)* n)'是不是會花費呢?另外,我相信在步驟2中,你的意思是「...... k-1號......」。 – quasiverse 2012-01-27 23:47:09
最後,你確定有'n ^(k-1)'組合嗎?我相信有選擇他們中的k,我不明白他們是如何平等的。 – quasiverse 2012-01-27 23:53:25
@quasiverse ... nCk-1是
- 1. 存儲整數集來檢查是否已經提到某個集合
- 2. 功能來檢查一個整數是否在PHP中有效
- 3. 算法來檢查給定的圖是否是另一個圖的子圖
- 4. C++:創建一個數學集來計算子集檢查
- 5. 如何編寫JPA查詢來檢查集合是否至少有另一個集合中的一個項目?
- 6. 最有效的方法來檢查是否存在一個集合
- 7. 一個遞歸算法來查找數組中的兩個整數,並將其相加成給定的整數
- 8. 算法:檢查n個隨機數的總和是否等於整數K?
- 9. 有沒有一種快速的方法來檢查一個變量是否屬於一個集合?
- 10. Pythonic方法來檢查整數是否適合64位
- 11. 計算給定整數中的個數
- 12. 檢查是否在一個jQuery集合
- 13. 設計一個算法來確定一個有向圖是否有唯一的拓撲排序
- 14. 如何寫一個模板來檢查給定值是否在數組中
- 15. 設計一個算法來計算陣列中1的個數A nxn
- 16. 給定一個整數數組,檢查給定產品中是否有兩個數字
- 17. 給定數量的組合加起來爲X
- 18. 測試一個集合中的k個元素是否合計到某個數字
- 19. 是否有簡單的方法來計算來自2個給定IP地址的IP數量?
- 20. 最好的方法來檢查一個URL是否有效
- 21. 函數來計算X個金額作爲一個整月的天數
- 22. 如何檢查一個整數是給定整數的總和?
- 23. 什麼是正確的「clojure方式」來檢查一個集合是否爲空
- 24. 什麼是一個很好的方法來檢查一個double是否是C#中的整數?
- 25. 檢查一個集合中是否存在一個對象(T)
- 26. 是否有更好的方法來檢查,如果一個集合在PowerShell中的foreach之前是空的?
- 27. 準確k個整數的子集合?
- 28. 什麼是最有效的方法來查找給定排序數組中的任何兩個數字是否合計到數組中的第三個數字?
- 29. 查找加起來給定數字的數字的子集
- 30. 是否有一個內置的功能來檢查數在SML
問題通常在其中至少有一個問號。 – 2012-01-27 23:18:34
@TimCooper - 他們很匆忙,他們正在接受採訪,現在在iPhone上發佈這個消息! – 2012-01-27 23:23:33
嘗試使用'Array'的'排列'功能。 – itdoesntwork 2012-01-27 23:23:54