最大子序列
请找出在一串有正有负的整数序列中,最大的子序列的总和
Input
第一行为序列的个数N
之後有N行序列,每行都有10个数,序列中的每个元素可能为正可能为负
Output
请输出每个序列中可以找出的最大的连续元素(子序列)的和
例如范例中的最後几个元素{19,-12,20,5}相加为32,是整个序列中所能找到的最大的子序列的和
Sample input
1
13 -11 -3 9 -19 -5 19 -12 20 5
Sample output
32
答案:
public static int maxSubSum(List<Integer> a){ int maxSum = 0; int thisSum = 0; for(int i=0; i<a.size(); i++){ thisSum += a.get(i); if(thisSum > maxSum) maxSum = thisSum; else if(thisSum<0) thisSum = 0; } return maxSum; }
作者:码农小陈
文中书写有误之处,欢迎批评指正。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
-------------------------------------------
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个 [推荐]哦,博主在此感谢!
关注我的公众号《码农小陈》 更多精彩内容等着你