Maximum sum of consecutive sub-arrays
Title description
HZ occasionally takes some professional questions to fool those non-computer majors. After the test group had a meeting today, he spoke again: In the ancient one-dimensional pattern recognition, it is often necessary to calculate the maximum sum of continuous sub-vectors.
- When the vectors are all positive, the problem is solved easily. However, if the vector contains a negative number, should it contain a certain negative number and expect the positive number next to it to make up for it?
- For example: {6,-3,-2,7,-15,1,2,2}, the maximum sum of continuous sub-vectors is 8 (starting from the 0th and ending with the 3rd). Give an array and return the sum of its largest consecutive subsequences. Will you be fooled by him? (The length of the sub-vector is at least 1).
title link : [Maximum sum of consecutive sub-arrays]()
Code
/**
* 标题:连续子数组的最大和
* 题目描述
* HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,
* 当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?
* 例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)
*/
public class Jz30 {
/**
* 动态规划
*
* @param array
* @return
*/
public int findGreatestSumOfSubArray(int[] array) {
if (array == null || array.length == 0) {
return 0;
}
int greatEstSum = Integer.MIN_VALUE;
int sum = 0;
for (int val : array) {
sum = sum <= 0 ? val : sum + val;
greatEstSum = Math.max(greatEstSum, sum);
}
return greatEstSum;
}
public static void main(String[] args) {
}
}
[Daily Message] Time will never go retrograde, take care of every morning that belongs to you.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。