【发布时间】:2013-03-04 17:02:45
【问题描述】:
给定一个自然数数组和一个自然数T,如何找到总和小于或等于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) 操作来做到这一点。但是,我正在寻找这个问题的线性时间解决方案。有什么想法吗?
【问题讨论】:
-
对我来说,这似乎是 Knapsack Problem 的一个版本。