【发布时间】:2012-09-09 13:00:06
【问题描述】:
编写一个程序,通过给定的整数值数组(包含负整数)找到数组中连续元素的最大和。
例子:
2、3、-6、-1、2、-1、6、4、-8、8
给予
11
我正在寻找比 O(N^2) 更快的解决方案。
【问题讨论】:
-
1,2,5,6 不是连续的。如果你对可以取的子集没有限制,这就是Subset-Sum问题,也就是NP-Complete,但我觉得不是这样。
-
抱歉造成误会。我在描述和示例中犯了一个错误。 :) 我都更新了。
-
线性扫描可以解决这个问题。只需求和并与当前最大值进行比较,如果 sum en.wikipedia.org/wiki/Maximum_subarray_problem
-
@user1106337:它适用于任何情况——即使整个数组为负数(只需选择所有负数中最大的一个)。