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

    最近研究最大数组,稍微总结一下,以后继续补充:

        标题:

        Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

        For example, given the array [−2,1,−3,4,−1,2,1,−5,4],
    the contiguous subarray [4,−1,2,1] has the largest sum = 6.

        分析:利用扫描算法,从数组最左端开始扫描,一直到最右端,并记下所碰到的最大总和子向量。最大总和的初值为0.

        对于前m个元素,最大总和子数组要么在前m-1个元素中,要么是其结束位置为m。

        每日一道理
    春蚕死去了,但留下了华贵丝绸;蝴蝶死去了,但留下了漂亮的衣裳;画眉飞去了,但留下了美妙的歌声;花朵凋谢了,但留下了缕缕幽香;蜡烛燃尽了,但留下一片光明;雷雨过去了,但留下了七彩霓虹。

        还需注意的一种情况是若所有的元素都为负值,则问题转化为求数组中的最大数。

        代码如下:

        int max(int l,int r)

        {

            return (l>r)?l:r;

        }

        int maxSubArray(int A[], int n)

        {

            int TempMax=0,Maxending=0,negative=A[0];

            for(int i=0;i<n;i++)

            {

                Maxending = max(Maxending+A[i],0);

                TempMax = max(TempMax,Maxending);

                if(A[i]>negative)negative=A[i];

            }

            if(negative<0)return negative;

            else return TempMax;

        }

    文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。

  • 相关阅读:
    WCF学习笔记
    下拉框层级绑定
    js在IE可以运行,在Firefox 不运行
    ajax 基础
    Asp.net Mvc Web Api 学习(一)
    阅读暗时间的笔记与心得
    阅读暗时间的心得与笔记
    阅读暗时间的笔记与心得(结束篇)
    阅读暗时间的笔记与心得
    阅读暗时间的心得与笔记
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3076675.html
Copyright © 2011-2022 走看看