动态规划问题之牛市重现!
来源:互联网 发布:指南针炒股软件骗局 编辑:程序博客网 时间:2024/04/30 05:58
问题描述:
风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2<=n<=100,0<=prices[i]<=100
public class Solution { /** * 计算你能获得的最大收益 * * @param prices Prices[i]即第i天的股价 * @return 整型 */ public int calculateMax(int[] prices) { if(prices==null || prices.length==0 || prices.length<2 || prices.length>100){ return 0; } int len = prices.length; int[] dpl = new int[len]; dpl[0] = 0; int minI = 0; for(int i=1; i<len; i++){ //从左到右扫描一遍填充dpl数组 if(prices[i]>prices[i-1]){ dpl[i] = Math.max(prices[i]-prices[minI],dpl[i-1]); } else{ dpl[i] = dpl[i-1]; if(prices[i]<prices[minI]) minI = i; } } int[] dpr = new int[len]; dpr[len-1] = 0; int maxI = len-1; for(int i=len-2; i>=0; i--){//从右到左扫描一遍填充dpr数组 if(prices[i]<prices[i+1]){ dpr[i] = Math.max(prices[maxI]-prices[i], dpr[i+1]); } else{ dpr[i] = dpr[i+1]; if(prices[i]>prices[maxI]){ maxI = i; } } } int res = 0; for(int i=0; i<len; i++){ //比较得出最大值 res = Math.max(dpl[i]+dpr[i], res); } return res; }}
方法2:
static int prices[10] = {2,6,8,10,1,5,9,7,3,4};static int result = 0;int getmax(int star,int end){ int min = prices[0]; int max = 0; for(int i = 1;i<10;i++){ if(prices[i] - min > prices[max]){ max = prices[i]; } if(prices[i] < min){ min = prices[i]; } return max; }} int calculateMax(){ static int sum = 0; for(int i = 1 ;i < 10;i++ ){ int temp = getmax(0,i) + getmax(i,9); if(temp > sum) { sum = temp; } } return sum;}int main(){ cout<<calculateMax(); system("pause"); return 0;}
阅读全文
0 0
- 动态规划问题之牛市重现!
- 动态规划之 分割重现
- 风口的猪-中国牛市(动态规划)
- 动态规划之装配线问题
- 动态规划之背包问题
- 动态规划之背包问题
- 动态规划之找零问题
- 动态规划之背包问题
- 动态规划之背包问题
- 动态规划之背包问题
- 动态规划之硬币问题
- 动态规划之背包问题
- 动态规划之背包问题
- 动态规划之背包问题
- 动态规划之背包问题
- 动态规划问题之一马当先
- 动态规划之LCS问题
- 动态规划之硬币问题
- PS怎样把选区保存起来?(用通道的方式)
- Apache的DBUtils框架学习
- HDU-1521 排列组合 (指数型母函数)
- Unity Animator采样和Animation采样
- MongoDB数据库常用操作命令
- 动态规划问题之牛市重现!
- 机器人系列
- 2.1 Spring的日志依赖
- 微信公众号开发(二)基础接口
- html格式标记lianxi
- java知识点(2)
- Log4net系列一:Log4net搭建之文本格式输出
- 查看keystore的签名信息
- spark WebService调用