首页 > 代码库 > 最大子段和 股票最大买入卖出方案
最大子段和 股票最大买入卖出方案
[-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],然后是最大子段和问题。
最大子段和 股票最大买入卖出方案
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。