2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
风口之下。猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回想历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。
如果你一開始没有股票。但有至多两次买入1股而后卖出1股的机会,而且买入前一定要先保证手上没有股票。若两次交易机会都放弃。收益为0。 设计算法。计算你能获得的最大收益。
输入数值范围:2<=n<=100,0<=prices[i]<=100
输入样例:
3,8,5,1,7,8
输出样例:
12
代码:
#include <iostream>
#include <cmath>
#include <vector> using namespace std; vector<int> prices; int calculateMax(vector<int> prices)
{
int i,nmin,nmax,len,ans;
len=prices.size();
int *lhs=new int[len];
int *rhs=new int[len]; lhs[0]=0;
nmin=prices[0];
for(i=1;i<len;i++)
{
lhs[i]=max(lhs[i-1],prices[i]-nmin);
if(prices[i]<nmin)
nmin=prices[i];
// cout<<"lhs "<<i<<" "<<lhs[i]<<endl;
} rhs[len-1]=0;
nmax=prices[len-1];
for(i=len-2;i>=0;i--)
{
rhs[i]=max(rhs[i+1],nmax-prices[i]);
if(prices[i]>nmax)
nmax=prices[i];
// cout<<"rhs "<<i<<" "<<rhs[i]<<endl;
} ans=0;
for(i=0;i<len;i++)
if((lhs[i]+rhs[i])>ans)
ans=lhs[i]+rhs[i]; return ans;
} int main()
{
int m,len;
while(cin>>m)
prices.push_back(m);
cout<<calculateMax(prices)<<endl;
return 0;
}
以下是去掉凝视的測试截图,能够直观一点
语言表达能力太差啦,以后发文会注意写凝视,亲们多多提建议哈~
#include <iostream>
#include <cmath>
#include <vector> using namespace std; vector<int> prices; int calculateMax(vector<int> prices)
{
int i,nmin,nmax,len,ans;
len=prices.size();
int *lhs=new int[len];
int *rhs=new int[len]; lhs[0]=0; //下标为0的时候卖出。利润为0
nmin=prices[0]; //假定下标为0的的价格为最低
for(i=1;i<len;i++)
{
lhs[i]=max(lhs[i-1],prices[i]-nmin); cout<<"lhs 下标 "<<i<<" : "<<nmin<<" 时买入 "<<prices[i]<<" 时还没卖出。则能获得的最大利润是 "<<lhs[i]<<endl; if(prices[i]<nmin)
nmin=prices[i];
} rhs[len-1]=0;
nmax=prices[len-1];
for(i=len-2;i>=0;i--)
{
rhs[i]=max(rhs[i+1],nmax-prices[i]); cout<<"rhs 下标 "<<i<<" : "<<prices[i]<<" 时买入 "<<nmax<<" 时还没卖出,则能获得的最大利润是 "<<rhs[i]<<endl; if(prices[i]>nmax)
nmax=prices[i];
} ans=0;
for(i=0;i<len;i++)
{
cout<<"下标 "<<i<<" : "<<prices[i]<<" 时能得到的最大利润为 "<<lhs[i]<<" 之后又能获得利润 "<<rhs[i]<<" 此时总共能获得利润 "<<lhs[i]+rhs[i]<<endl;
if((lhs[i]+rhs[i])>ans)
ans=lhs[i]+rhs[i];
} return ans;
} int main()
{
int m,len;
while(cin>>m)
prices.push_back(m);
cout<<calculateMax(prices)<<endl;
return 0;
}
再插个图片
最后给个原题的链接
哦,对了。还有谈论区
2015小米暑期实习笔试题_风口的猪-中国牛市(dp)的更多相关文章
- js+html+css简单的互动功能页面(2015知道几乎尖笔试题)http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html?from=y1.7-1.2
js+html+css实现简单页面交互功能(2015知乎前端笔试题) http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html? from=y1.7-1. ...
- 剑指Offer——京东实习笔试题汇总
剑指Offer--京东实习笔试题汇总 编程题1 题目的详细信息已经记不住,只能大致描述一下,就是求最有价值的的委托信息. n.s.B.S其中n代表委托信息,s要求的最有价值的委托信息的个数,B代表买入 ...
- 剑指Offer——小米+小红书笔试题+知识点总结
剑指Offer--小米+小红书笔试题+知识点总结 情景回顾 时间:2016.9.23 19:00-21:00 2016.9.24 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事 ...
- 诺基亚(Microsoft Devices Group)2014暑期实习生笔试题知识点
总结一下Microsoft Devices Group的软件类笔试题,全部笔试题分两份试卷,逻辑题一份和软件測试题一份,仅仅总结技术题喽~题目全英文,仅仅包括选择题和填空题.选择题居多.分单选和多选. ...
- 003_C/C++笔试题_分享大汇总
(一)感谢:lhzstudio 01_C++经典面试题全集 50~100道 都附带有参考答案 02_C++开发工程师面试题库 100~150道 03_C++笔试题库之编程.问答题 150~200道 0 ...
- 001_C/C++笔试题_考察C/C++语言基础概念
(一)文章来自:C/C++笔试题-主要考察C/C++语言基础概念.算法及编程,附参考答案 (二)基础概念 2. 头文件中的ifndef/define/endif的作用? 答:防止该头文件被重复引用. ...
- 2019 小米java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.小米等公司offer,岗位是Java后端开发,因为发展原因最终选择去了小米,入职一年时间了,也成为了面试官,之 ...
- 蘑菇街2015校招 Java研发笔试题 详解
1. 对进程和线程描述正确的是( ) A. 父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间. B. 改变进程里面主线程的状态会影响其他线程的行为,改变父进程的状态不会影 ...
- 阿里巴巴2015研究project普通笔试题,与答案
欢迎您对这篇文章的其他建议.我可以留言在以下平台. 个人博客网站:www.anycodex.com/blog/ Csdn博客网站:http://my.csdn.net/?ref=toolbar 微博: ...
随机推荐
- [Functional Programming] mapReduce over Async operations and fanout results in Pair(rejected, resolved) (fanout, flip, mapReduce)
This post is similar to previous post. The difference is in this post, we are going to see how to ha ...
- 实现基于DNS的负载均衡
转自:http://blog.sina.com.cn/s/blog_4e424e2101000c3g.html 如果你有一个很受欢迎的Web站点,你会发现当请求的连接数增加时,服务器的响应延时也会随之 ...
- ZH奶酪:在博客中添加Latex公式
1. 点击编辑器中的插入图片: 2.在URL输入下边的地址: http://latex.codecogs.com/gif.latex?你的latex代码 就可以了-
- POSIX 线程 – pthread_sigmask
http://www.cnblogs.com/qq78292959/archive/2012/04/05/2432985.html 概念 按照 POSIX, 异步 (外部) 信号发送到整个进程. 所有 ...
- Eclipse——工作台
Workspace 磁盘区域.存放工作资料
- 11个强大的 Visual Studio 调试技能
简介 调试是软件开辟周期中很首要的一项目组.它具有挑衅性,同时也很让人困惑和懊恼.总的来说,对于稍大一点的法度,调试是不成避免的.比来几年,调试对象的成长让很多调试任务变的越来越简单和省时. 这篇文章 ...
- 5、main方法详解
public class HelloWorld { public static void main(String[] args){ System.out.print("Hello World ...
- java RandomAccessFile类(随机访问文件)
该类可以实现对同一个文件的读写操作,与其他IO流不同的是可以指定读写指针的脚标(seek),有跳过指定个数字节(skipBytes)操作. 另外该类也可用于断点续传. 简单示例如下: import j ...
- 全球免费知名DNS服务器
全球免费知名DNS服务器 jalone 2013-06-18 14:25:46 最近老是发表DNS相关文章,今天继续说DNS,国内75%以上的家用宽带路由器存在严重的安全隐患:用户浏览网页的时候其DN ...
- Intellij IDEA 快捷键整理(dyCopy)
原文:http://www.cnblogs.com/tonycody/p/3257601.html [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “! ...