zoukankan      html  css  js  c++  java
  • 求连续的子数组的最大和

     //求子数组的最大和
            public static int maxSubarray(int[] a, int size)
            {
                if (size <= 0) Console.WriteLine("error array size");
                int sum = 0;
                int max = 0;
                int cur = 0;
                while (cur < size)
                {
                    sum += a[cur++];
                    if (sum > max)
                    {
                        max = sum;
                    }
                    else if (sum < 0)
                    {
                        sum = 0;
                    }
                }
                return max;

            }

            //求子数组的最大和
            static int Max(int[] array, int size)
            {
                int curSum = 0;
                int maxSum = 0;
                for (int i = 0; i < size; i++)
                {
                    curSum += array[i];
                    if (curSum < 0) curSum = 0;
                    if (curSum > maxSum) maxSum = curSum;

                }
                if (maxSum == 0)
                {            //若是数组中的元素均为负数,则输出里面的最大元素
                    maxSum = array[0];          //当然这步也可以写到上面一个循环里
                    for (int i = 1; i < size; i++)
                    {
                        if (maxSum < array[i]) maxSum = array[i];
                    }
                }
                return maxSum;
            }

  • 相关阅读:
    atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性
    Atitit. atiOrder   Order 订单管理框架的设计
    Atitit.为什么小公司也要做高大上开源项目
    Atitit.atiInputMethod v2词库清理策略工具    q229
    12条黄金法则
    数据库主键设计
    xhtml常见问题
    程序员面试宝典
    采用XHTML和CSS设计可重用可换肤的WEB站点
    XHTML基础问答
  • 原文地址:https://www.cnblogs.com/dasydong/p/3280966.html
Copyright © 2011-2022 走看看