风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2<=n<=100,0<=prices[i]<=100

解体思路:

考虑题目限制,至多卖出一次,买入可以1次/2次/0次,也就是低买高卖,计算max{第一次卖出-第一次买入}+max{第二次持有最高值-第二次买入},第二次可有可无,因此以第一次卖出为分界线,分别计算max{第一次卖出-第一次买入},右边计算max{第二次持有最高值-第二次买入};

代码:

public class Solution {/*** 计算你能获得的最大收益* * @param prices Prices[i]即第i天的股价* @return 整型*/public int calculateMax(int[] prices) {int[] lprofit=new int[prices.length];//存放max{第一次卖出-第一次买入}int[] rprofit=new int[prices.length];//存放max{第二次持有最高值-第二次买入}//从左到右循环int maxProfit=0;//计算已有的最大收益int minPrice=prices[0];//已经获得的最小值for(int i=0;i<prices.length;i++){if(minPrice>prices[i]){minPrice=prices[i];}if(maxProfit< (prices[i]-minPrice)){//最大值产生比较maxProfit=(prices[i]-minPrice);}lprofit[i]=maxProfit;  }//从右到左循环maxProfit=0;rprofit[prices.length-1]=0;int maxPrice = prices[prices.length-1];minPrice=prices[prices.length-1];int temp;for(int j=(prices.length-2);j>=0;j-- ){if(maxPrice<prices[j]){maxPrice=prices[j];}        if(maxProfit<(temp=maxPrice-prices[j])){maxProfit=temp;    }rprofit[j]=maxProfit;}//计算总和maxProfit=0;for(int i=0;i<prices.length;i++){if((temp=lprofit[i]+rprofit[i]) >maxProfit ){maxProfit=temp;}}return maxProfit;}
}

小米笔试题 风口的猪-中国牛市相关推荐

  1. 小米实习生笔试题风口的猪-中国牛市Java代码

    本文地址:http://blog.csdn.net/shanglianlm/article/details/77839691 题目描述 风口之下,猪都能飞.当今中国股市牛市,真可谓"错过等七 ...

  2. 邮政社招笔试题库_2016年中国邮政储蓄银行招聘考试笔试题库内容试卷历年真题...

    邮政银行招聘考试笔试复习资料 历年考试真题 建议报考的同学提前做好复习准备 ,考试复习资料可以到"考佳卜资料网" 上面找找, 资料确实不错, 比较有针对性, 资料都是上次参加考试的 ...

  3. 邮政社招笔试题库_历年中国邮政笔试精华试题及参考答案

    历年中国邮政笔试精华试题及参考答案 您需要登录后才可以回帖 登录 | 注册 发布 一.单项选择题 ( 共 60 题,每题 1 分.每题的备选项中,只有 1 个最符合题意 ) 1. 作为社会经济的有机组 ...

  4. 【软件测试笔试题】阿里巴巴(中国)网络技术有限公司

    小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己 ...

  5. 【小米笔试题】朋友圈问题-并查集解法

    2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r).如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共 ...

  6. 并查集——小米笔试题求朋友圈个数,分小组个数

    先给出小米的题: 已知有n个人和m对好友关系(存于数组r).如果两个人是直接或间接的好友(好友的好友的好友-),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈. 假如:n = 5 ...

  7. 【小米笔试题】实现一个算法,确定一个字符串的所有字符是否全部不同

    实现一个算法,确定一个字符串的所有字符是否全部不同. 下面给出3种可行方法,都经过测试.(其中方法一,刚开始理解有些困难,需要多思考一下) package XiaoMi;import java.uti ...

  8. 【小米笔试题】二分查找算法的变形

    一个有序数组的元素经过循环移动,元素的顺序可能变为"3 4 5 6 7 1 2".怎样才能找出数组中最小的那个元素?假设数组中的元素各不相同. 方法一:(暴力遍历)时间复杂度o(n ...

  9. 小米笔试题:无序数组中最小的k个数

    题目描述 链接:https://www.nowcoder.com/questionTerminal/ec2575fb877d41c9a33d9bab2694ba47?source=relative 来 ...

  10. 小米笔试题 依据父子关系建树

    问题描述: 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度  输入描述:  输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n- ...

最新文章

  1. 【力扣网练习题】整数反转
  2. pandas使用pad函数向dataframe特定数据列的每个字符串添加补齐字符或者字符串、向所有字符串的左右两侧填充、直到宽度达到指定要求(both padding)
  3. sysbench mysql测试_使用sysbench对MySQL进行测试
  4. Touch Diamond Remote —— 世界就在指尖
  5. 软件构造学习笔记-第四周
  6. C++起始(关键字,命名空间,缺省参数,函数重载(c语言为什么不支持函数重载))
  7. Linux 两台服务器之间传输文件和文件夹
  8. php静态方法怎么调用非静态属性,关于静态方法不能调用类中的非静态属性的理解...
  9. java分页插件PageHelper的内置list数据操作失败
  10. 活动预告丨openGauss西安Meetup来啦!本周五见!
  11. android:inputType 参数详解
  12. java中调用xml的方法:DocumentBuilderFactory
  13. 遥感软件_遥感软件的可持续发展
  14. 本地安装易邮邮箱服务器并用foxmail 连接测试
  15. 单核性能强悍,Core i3 这次又要“默秒全”?
  16. 【toLua++】toLua++编译生成tolua++.exe史上完整版
  17. GAN介绍 - 提示与技巧
  18. nodejs 牛刀小试
  19. 这款耳机亲测,性价比堪比 AirPods
  20. canvas粒子线条插件使用

热门文章

  1. 用Gitosis搭建Git服务器(经典资料)
  2. 证券机构分析师研报靠谱么?关于波司登沽空与买入报告
  3. 云存储服务OneDrive捆绑系统销售,30多家欧洲公司投诉微软垄断
  4. 【Unity 3D】简易小车游戏
  5. 上海车牌拍卖突破7.5万元
  6. alipay_open_auth_token_app_response“:{“code“:“40002“,“msg“:“Invalid Arguments“,“sub_code“:“isv.inval
  7. 想要快速增肌?肌酸可以帮你高效获得肌肉和力量
  8. mysql7.6安装_CentOS7.6离线安装MySql5.7
  9. cdd图像修复matlab,图像修复CDD模型新算法①.PDF
  10. 如何制作刷爆朋友圈的H5