剑指Offer三十: 连续子数组的最大和

题干

{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和

思路

  1. 将所遍历到的值加入到一个临时变量中。
  2. 与max进行比较先,取出较大值。
  3. 将sum与0进行比较判断所加上的值是否是大于零的,大于留下表示对于后面的序列还是有用,小于零时不予以保留,重新归零进行计算。
  4. 相似题目:给定二叉树,求取二叉树序列中和最大值。

代码

public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
       int max=Integer.MIN_VALUE,sum=0;
        for(int i=0;i<array.length;i++)
        {
            sum+=array[i]; 
            max=Math.max(sum,max); 
            sum=Math.max(sum,0);    
        }
        return max;
    }
}
发布了51 篇原创文章 · 获赞 29 · 访问量 2966

猜你喜欢

转载自blog.csdn.net/weixin_44015043/article/details/105375238