《剑指offer—面试题42:连续子数组的最大和》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011296723/article/details/82077987

《剑指offer—面试题42:连续子数组的最大和》
注明:仅个人学习笔记

/**
*
*
* 连续子数组的最大和
*
*/
public class FindGreatestSumOfSubArray42
{

boolean g_InvalidInput = false;// 来标记是否输入无效

public int FindGreatestSumOfSubArray(int[] array)
{
    int length = array.length;

    if (array == null || length < 0)
    {
        g_InvalidInput = true;
        return 0;
    }

    g_InvalidInput = false;

    int nCurSum = 0;//累加的子数组和
    int nGreatestSum = Integer.MIN_VALUE;//最大的子数组和

    for (int i = 0; i < length; i++)
    {
        if (i == 0 || nCurSum <= 0)// 开始的是第一个数或如果当前最连续子数组的最大和小于0,那不能在当前最大和上继续累加
        {
            nCurSum = array[i];
        } else
        {
            nCurSum += array[i];
        }

        if (nCurSum > nGreatestSum)
        {
            nGreatestSum = nCurSum;
        }

    }

    return nGreatestSum;

}

}

猜你喜欢

转载自blog.csdn.net/u011296723/article/details/82077987