小米笔试题 风口的猪-中国牛市
风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续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;}
}
小米笔试题 风口的猪-中国牛市相关推荐
- 小米实习生笔试题风口的猪-中国牛市Java代码
本文地址:http://blog.csdn.net/shanglianlm/article/details/77839691 题目描述 风口之下,猪都能飞.当今中国股市牛市,真可谓"错过等七 ...
- 邮政社招笔试题库_2016年中国邮政储蓄银行招聘考试笔试题库内容试卷历年真题...
邮政银行招聘考试笔试复习资料 历年考试真题 建议报考的同学提前做好复习准备 ,考试复习资料可以到"考佳卜资料网" 上面找找, 资料确实不错, 比较有针对性, 资料都是上次参加考试的 ...
- 邮政社招笔试题库_历年中国邮政笔试精华试题及参考答案
历年中国邮政笔试精华试题及参考答案 您需要登录后才可以回帖 登录 | 注册 发布 一.单项选择题 ( 共 60 题,每题 1 分.每题的备选项中,只有 1 个最符合题意 ) 1. 作为社会经济的有机组 ...
- 【软件测试笔试题】阿里巴巴(中国)网络技术有限公司
小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己 ...
- 【小米笔试题】朋友圈问题-并查集解法
2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r).如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共 ...
- 并查集——小米笔试题求朋友圈个数,分小组个数
先给出小米的题: 已知有n个人和m对好友关系(存于数组r).如果两个人是直接或间接的好友(好友的好友的好友-),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈. 假如:n = 5 ...
- 【小米笔试题】实现一个算法,确定一个字符串的所有字符是否全部不同
实现一个算法,确定一个字符串的所有字符是否全部不同. 下面给出3种可行方法,都经过测试.(其中方法一,刚开始理解有些困难,需要多思考一下) package XiaoMi;import java.uti ...
- 【小米笔试题】二分查找算法的变形
一个有序数组的元素经过循环移动,元素的顺序可能变为"3 4 5 6 7 1 2".怎样才能找出数组中最小的那个元素?假设数组中的元素各不相同. 方法一:(暴力遍历)时间复杂度o(n ...
- 小米笔试题:无序数组中最小的k个数
题目描述 链接:https://www.nowcoder.com/questionTerminal/ec2575fb877d41c9a33d9bab2694ba47?source=relative 来 ...
- 小米笔试题 依据父子关系建树
问题描述: 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度 输入描述: 输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n- ...
最新文章
- 【力扣网练习题】整数反转
- pandas使用pad函数向dataframe特定数据列的每个字符串添加补齐字符或者字符串、向所有字符串的左右两侧填充、直到宽度达到指定要求(both padding)
- sysbench mysql测试_使用sysbench对MySQL进行测试
- Touch Diamond Remote —— 世界就在指尖
- 软件构造学习笔记-第四周
- C++起始(关键字,命名空间,缺省参数,函数重载(c语言为什么不支持函数重载))
- Linux 两台服务器之间传输文件和文件夹
- php静态方法怎么调用非静态属性,关于静态方法不能调用类中的非静态属性的理解...
- java分页插件PageHelper的内置list数据操作失败
- 活动预告丨openGauss西安Meetup来啦!本周五见!
- android:inputType 参数详解
- java中调用xml的方法:DocumentBuilderFactory
- 遥感软件_遥感软件的可持续发展
- 本地安装易邮邮箱服务器并用foxmail 连接测试
- 单核性能强悍,Core i3 这次又要“默秒全”?
- 【toLua++】toLua++编译生成tolua++.exe史上完整版
- GAN介绍 - 提示与技巧
- nodejs 牛刀小试
- 这款耳机亲测,性价比堪比 AirPods
- canvas粒子线条插件使用
热门文章
- 用Gitosis搭建Git服务器(经典资料)
- 证券机构分析师研报靠谱么?关于波司登沽空与买入报告
- 云存储服务OneDrive捆绑系统销售,30多家欧洲公司投诉微软垄断
- 【Unity 3D】简易小车游戏
- 上海车牌拍卖突破7.5万元
- alipay_open_auth_token_app_response“:{“code“:“40002“,“msg“:“Invalid Arguments“,“sub_code“:“isv.inval
- 想要快速增肌?肌酸可以帮你高效获得肌肉和力量
- mysql7.6安装_CentOS7.6离线安装MySql5.7
- cdd图像修复matlab,图像修复CDD模型新算法①.PDF
- 如何制作刷爆朋友圈的H5