求子数组的最大值

题目:一个数组中,求子数组(在数组中连续的N个数)和的最大值,例如{ -1,3,5,-1,4,-5}数组,最大值为11, 3+5+(-1)+4=11,在这个数组中只有这四个数相加的和是最大的

代码如下:

class Program
{
    static void Main(string[] args)
    {
        int[] arr = { -1,3,5,-1,4,-5};

        int result = GetSubMax(arr);
        Console.WriteLine(result);
        Console.ReadKey();
    }

    public static int GetSubMax(int[] arr)
    {
        int max = 0, subSum = 0;
        for (int i = 0; i < arr.Length; i++)
        {
            subSum = subSum > 0 ? subSum + arr[i] : arr[i];
            max = subSum > max ? subSum : max;
        }

        return max;
    }
}

原文地址:https://www.cnblogs.com/wangshuai/p/2093828.html