问题:求取数组中最大连续子序列和,例如给定数组为A={1, 3, -2, 4, -5}, 则最大连续子序列和为6,即1+3+(-2)+ 4 = 6。
大家在搜索答案之前,先思考10分钟,看自己能够想到几种答案?最佳的解法是O(N)复杂度。
思考了20分钟,还是只找到笨方法。后来参考了“石锅拌饭“最大连续子序列和”的解释,写下了Java代码。
输入:
测试输入包含若干测试用例,每个测试用例占2行,第1行给出正整数K( K< 10000 ),第2行给出K个整数,中间用空格分隔。当K为0时,输入结束,该用例不被处理。
样例输入:
6
-2 11 -4 13 -5 -2
10
-10 1 2 3 4 -5 -23 3 7 -21
6
5 -8 3 2 5 0
1
10
3
-1 -5 -2
3
-1 0 -2
0
运行结果