給定一個自然數和另一個自然數T的數組,如何找到sum小於或等於T的連續子數組,但是這個子數組中的元素數是最大化?最大連續子數組(最多元素數)
例如,如果給定的數組是:
{3, 1, 2, 1, 1}
和T = 5
。那麼最大連續子數組是{1, 2, 1, 1}
,因爲它將包含5個元素並且總和等於5.
另一個示例:{10,1,1,1,1,3,6,7}
與T = 8
。然後最大連續子陣是${1,1,1,1,3}$
我可以用O(n^2)
操作。不過,我正在尋找這個問題的線性時間解決方案。有任何想法嗎?
對我來說,它似乎是[揹包問題](http://en.wikipedia.org/wiki/Knapsack_problem)的一個版本。 – 2013-03-04 18:59:50