您的位置:首页 > Web前端

剑指offer-31:连续子数组的最大和

2014-08-05 20:14 253 查看
package partation;
/**
* 题目:输入一个整型数组,数组里面有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。
* 要求时间复杂度为O(n)
* Description: [类描述]
* @author summ
* @Version
* @Created at 2014-8-5
* @Modified by summ on 2014-8-5
*/
public class FindgreatestSumOfSubArray {

private static int findgreatestSumOfSubArray(int[] array) {
int greatNum = 0x0000000;
int sum = 0;

if(array.length <= 0) {
return 0;
}

for (int i = 0; i < array.length; i++) {
if(sum <= 0) {
sum = array[i];
} else {
sum = sum + array[i];
}

if (sum > greatNum) {
greatNum = sum;
}
}

return greatNum;

}

public static void main(String[] args) {
int[] array = {1,-2,3,10,-4,7,2,-5};
findgreatestSumOfSubArray(array);
System.out.println(findgreatestSumOfSubArray(array));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: