码迷,mamicode.com
首页 > 其他好文 > 详细

最大子段和 股票最大买入卖出方案

时间:2014-10-28 02:04:08      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   for   sp   div   on   问题   log   

[-2,2,3,-1]的最大字段和是[2,3]

/*动态规划算法:
**b[j]=max{a[i]+ +a[j]},1<=i<=j,且1<=j<=n,则所求的最大子段和为max b[j],1<=j<=n。
**由b[j]的定义可易知,当b[j-1]>0时b[j]=b[j-1]+a[j],否则b[j]=a[j]。故b[j]的动态规划递归式为:
**b[j]=max(b[j-1]+a[j],a[j]),1<=j<=n。
**T(n)=O(n)
*/
int MaxSum_DYN(int *v,int n)
{
    int sum=0,b=0;
    int i;
    for (i=1;i<=n;i++)
    {
        if(b>0)
            b+=v[i];
        else
            b=v[i];
        if(b>sum)
            sum=b;
    }
    return sum;
}

 

 

有一个股票问题: 

给定一个int数组,长度为n,数组中存放的是一只股票n天来的价格,求利润最大的买入、卖出方案,如 [4,2,5,7,6]  则在2时买入 7时卖出 可以使利润最大

for(i = 0; i < n; ++i){
    minPrice = min(minPrice, a[i]);
    best  = max(a[i] - minPrice, best);
}
 或者 价格变化数组是 [-2, 3, 2, -1],然后是最大子段和问题。

 

最大子段和 股票最大买入卖出方案

标签:style   blog   color   for   sp   div   on   问题   log   

原文地址:http://www.cnblogs.com/juandx/p/4055672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!