风口上的猪-中国牛市
输入例子:
3,8,5,1,7,8
输出例子:
12
import java.sql.ResultSet;public class Main {public static void main(String[] args) {int[] array = new int[] { 3, 8, 5, 1, 7, 8 };calculateMax3(array);}public static int calculateMax(int[] p) {int[] dpl=new int[p.length];//dpl[i]为从0开始到i的所有天中能获得的最大的收益,可能是其中的一段时间int length=p.length;dpl[0]=0;int min=0;//min为从第min天开始买入到第i天获得的收益int resl=0;for(int i=1;i<length;i++){if(p[i]>p[i-1]){resl=Math.max(p[i]-p[min], resl);//比较值为历史新低到当前天的最大收益和前i天历史最大值dpl[i]=resl;//若第二天上涨,有可能该天到买入收益最大,也有可能是股票回升//若股票回升,则还是为前i天最大值,即前i天最大收益仍为第min天到第某天}else {//若第二天下跌,则看是否跌出谷底,//若没有跌出谷底,则仍为前i-1天最大收益//若跌出谷底则重新计算最小值,从该天算后面的收益dpl[i]=dpl[i-1];if(p[i]<p[min]){min=i;}}}int[] dpr=new int[length];dpr[length-1]=0;int resr=0;int max=length-1;for(int i=length-2;i>=0;i--){if(p[i]<p[i+1]){resr=Math.max(p[max]-p[i], resr);dpr[i]=resr;}else {dpr[i]=dpr[i+1];if(p[i]>p[max]){max=i;}}}int res =0;for(int i=0;i<length;i++){res=Math.max((dpl[i]+dpr[i]), res);}System.out.println(res);return res;}/*** 计算你能获得的最大收益** @param prices* Prices[i]即第i天的股价* @return 整型*/public static int calculateMax2(int[] prices) {int firstBuy = Integer.MIN_VALUE, firstSell = 0;int secondBuy = Integer.MIN_VALUE, secondSell = 0;for (int curPrice : prices) {firstBuy = Math.max(firstBuy, -curPrice);firstSell = Math.max(firstSell, firstBuy + curPrice);secondBuy = Math.max(secondBuy, firstSell - curPrice);secondSell = Math.max(secondSell, secondBuy + curPrice);System.out.println("firstBuy: " + firstBuy + ", firstSell: "+ firstSell + ", secondBuy: " + secondBuy+ ", secondSell: " + secondSell);}return secondSell;}
// 来自http://blog.csdn.net/li563868273/article/details/51073838public static int calculateMax3(int[] prices) {// 记录[0..i]之间的最大收益int[] dpl = new int[prices.length];// 记录[i...length-1]的最大收益int[] dpr = new int[prices.length];dpl[0] = 0;// 第一个肯定赋值为0int minI = 0;// 扫描一次左边System.out.print("dpl[0]=0, ");for (int i = 1; i < dpl.length; i++) {// 如果大于等于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;}System.out.print("dpl[" + i + "]=" + dpl[i] + ", ");}System.out.println();// 最后一个肯定赋值为0dpr[prices.length - 1] = 0;int maxI = prices.length - 1;System.out.print("dpr[" + (prices.length - 1) + "]=0, ");for (int i = prices.length - 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;}}System.out.print("dpr[" + i + "]=" + dpr[i] + ", ");}System.out.println();int res = 0;for (int i = 0; i < prices.length - 1; i++) { // 比较得出最大值res = Math.max(dpl[i] + dpr[i], res);System.out.println("dpl[" + i + "]=" + dpl[i] + ",dpr[" + i + "]="+ dpr[i] + ",res=" + res);}return res;}
}
风口上的猪-中国牛市相关推荐
- 开启猪年大运——风口上的猪
西安天气 阴 -3~4 ℃ 猪年第一篇文章,原本在上周六就想好主题(开启猪年大运--风口上的猪),下午进入复习去年学习的内容,状态也非常好,可是由于来了一些事情耽误了.现在开始完成未完成的工作. 回归 ...
- 雷军说的:站在风口上,猪都能飞起来,这就是借势。程序员该如何借势改变35岁危机?
作者:非著名程序员 前言 感兴趣的可以关注我的头条,Android进阶小刘 不定期更新Android热门知识学习视频哦! 大家好,我是你们的校长. 今天想跟大家聊一聊关于借势的话题.俗话说:**顺我者 ...
- 小米实习生笔试题风口的猪-中国牛市Java代码
本文地址:http://blog.csdn.net/shanglianlm/article/details/77839691 题目描述 风口之下,猪都能飞.当今中国股市牛市,真可谓"错过等七 ...
- 死在“风口上的猪”人工智能初创企业倒闭的原因分析
虽然行业主流观点认为AI是个时代,不是风口,2017年大家还是深刻感受到风来了,浪也来了-- 互联网思维认为"猪站在风口上都会飞",然而AI创业创新者注定浪立潮头的一般是少数,拍死 ...
- 陆奇谈创业:风口上的猪一定要赶快长出翅膀,因为风停下来满地都是掉落的死猪...
整理 | 阿司匹林.Just 出品 | AI科技大本营 创业很难,挑战很多,往往九死一生,但创业机会也很大,如何拥抱机会,面对挑战是创业者们关心的话题. 1 月 11 日,陆奇在上海交大文治堂与创业者 ...
- 浅谈程序员的英语学习 - 风口上的猪 - 博客园
作为在中国工作的程序员,不懂得英语似乎也不妨碍找到好工作,升职加薪.但程序员这个工种则稍有不同,因为程序,尤其是高级语言,基本上都是由英语和数字表达式构成的.英语对于程序员十分重要.我的大学本科全部采 ...
- 车用半导体风口上的猪,各大巨头抢占布局
自2012年以来,国际半导体界开始加速并购,在全球并购浪潮中,中国半导体并购在前两年也开始盛行.包括从存储器与储存到网路.处理器以及类比等领域.有行业人士认为,这是半导体产业进入成熟期的标志,随着行业 ...
- 《大数据》第1期“动态”——站在大数据的风口上
站在大数据的风口上 Momentum of Big Data 每个人都渴望成功,而通向成功道路最重要的一条就是创新创业,创新创业的源泉是新的思想.最近,由中信出版集团出版.大数据战略重点实验室推出的一 ...
- 风口上的雷军和他的编程梦
提起雷军,大家会想到什么?小米. 是的,是雷军成就了小米,同时,小米也成就了雷军. 其实,雷军的成功远不止小米一个,你知道中国第一家网购网站是什么?不是淘宝,是雷军的卓越!你知道中国第一个语音聊天ap ...
- 站在设计风口上,你也会飞
编者注: 本文来自Medium,中文版由天地会珠海分舵进行编译.发文时该文在Medium上的"头条推荐"上排名第二位,可见其在国外同行中时备受推崇的.为了让国内的读者更容易阅读,译 ...
最新文章
- Openstack组件实现原理 — Keystone认证功能
- javascript 点点滴滴 jquery
- 阿里云视频云编码优化的思考与发现
- re 模块 分组特别说明
- jpa动态扩展sql_扩展您的JPA POJO
- 解释性语言和汇编性语言对比
- cron 每天下午5点_下午5点30:沅江新沅路与琼湖路交叉路口...
- opencv cvtColor dtype issue(error: (-215) )
- java窗口布局_Java窗口(JFrame)从零开始(4)——流布局+边界布局+网格布局
- y480 linux无线网卡驱动,联想y480无线网卡驱动
- 计算机网络技术超星尔雅章节检测,超星尔雅计算机网络技术第二章节测验答案...
- plotly系列 | 绘制散点图组合箱线图(联合图)
- 职业学校计算机课评课,中职计算机评课稿
- PS修改图片局部颜色
- 手机知识:手机OTG知识介绍,看完你就懂了
- 杭州好玩景点攻略200
- 国内运营商的Sim卡在日版iPhone上的使用方法(卡贴安装方法)
- 分布式elasticsearch7.3.1集群部署
- JavaWeb技术内幕四:Javac编译原理
- WMIC命令的利用技巧