我知道如何在O(n)中找到數組的最大連續子數組。 但是,當下面的鏈接中的第二個問題要求在某些元素(k)可以消除時找到最大的連續子數組: http://www.iarcs.org.in/inoi/2011/inoi2011/inoi2011-qpaper.pdf 我似乎無法找到一種有效的方法來完成此操作。消除最大子數組
Q
消除最大子數組
2
A
回答
2
考慮到我認爲要做一個O(N^2)解決方案的限制。我不會告訴你如何解決這個問題,但會給你一些提示:
- 注意,號碼價值相當有限 - 他們可能只是在區間[-10^4,10^4]這使得有可能有一個數組,您可以計算給定值(整個數組中或僅在給定的時間間隔內)有多少個數字
- 迭代您將選擇的子數組的長度並解決問題每個長度在線性時間
- 請注意,對於給定的數組,您將始終丟棄最小的k值或子數組中的所有負數,如果它們小於k
希望這會幫助你解決問題。
1
有一個O(NK)動態規劃溶液:
讓d[i][j]
(0 < i
= < = N,0 < j
= = < K)是任何(可能爲空)的最大總和子數組以i
th元素結尾,刪除j
元素。
初始值: d[0][j] = 0
爲0 < = j
< = K
更新動態值:
for i = 1 to N:
d[i][0] = max (d[i-1][0]+a[i], 0)
for j = 1 to K:
d[i][j] = max(d[i-1][j]+a[i], d[i-1][j-1])
和溶液是max{d[N][j]}
爲0 < = j
< = K
相關問題
- 1. 消除最小和最大
- 2. SQLite的:子查詢組由最大數
- 3. 數組中最大的可分子集
- 4. 數組值的平均最大子集
- 5. 需要的最大子數組提示
- 6. 兩個最大的連續子數組
- 7. 最大的數組子集(MATLAB)
- 8. 最大數組數
- 9. 最大子和數
- 10. 消除表格的最大總分
- 11. 最大連續子數組(最多元素數)
- 12. $ _POST最大數組大小
- 13. 最大數組大小
- 14. Python:最大數組大小?
- 15. Scipy.linalg.solve最大數組大小
- 16. 如何從php中的大數組中刪除子數組?
- 17. PHP數組數最大值
- 18. 找到一大組整數的最大子集
- 19. 如何獲取MongoDB中的子數組的最小/最大值?
- 20. 將數組劃分爲最大組數
- 21. 刪除組中最大的差異
- 22. C#數組最大值
- 23. MySQL-最大計數多組
- 24. 數組中的最大值
- 25. 消除元組
- 26. 讀整數數組從文件和輸出最大子陣
- 27. 查找不同數字的最大連續子數組求和
- 28. 查找數組中元素數量最大的子序列
- 29. 瞭解遞歸/子問題如何組合(最大子數組算法)
- 30. SQL最大子
你能告訴你的低效率的方式? – rene
如果您瞭解連續子數組解決方案的工作原理,那麼您應該可以對連續子數組與連續子空間情況稍微進行修改。後者的複雜性實際上是O(N log K)。沒有更多的提示,這個數字是一個死的贈品。 –
查看您的評論後,問題變得非常容易。感謝提示 –