连续子数组最大和
连续子数组的最大和
http://www.nowcoder.com/questionTerminal/459bd355da1549fa8a49e350bf3df484
Java题解;
看着简单,也改了很多次条件
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { int maxCur = 0; // 保存返回的结果 if(array.length == 0){ return maxCur; } int totalNum = 0; // 保存从某个位置为起点累加所有的数,得到的和 for(int i=0; i<array.length; i++){ // 最大连续子序列的和不一定从第一个元素开始算起 // 当前面的数之和小于当前元素,并且前面数的和为负数时,将当前元素作为新的起点 if(totalNum < array[i] && totalNum < 0){ // *** 这个条件改了很多次 maxCur = array[i]; totalNum = array[i]; }else{ totalNum += array[i]; if(totalNum > maxCur){ maxCur = totalNum; } } } return maxCur; } }