动态规划练习(1)--编程题 风口的猪-中国牛市

动态规划学习参考:

教你彻底学会动态规划——入门篇

https://blog.csdn.net/baidu_28312631/article/details/47418773

编程题 风口的猪-中国牛市

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

输入例子1:
3,8,5,1,7,8
输出例子1:
12

思路:
正序遍历得到第k天之前可以获得的最大收益,后序遍历得到第k天后面可以获得的最大收益。

状态转移方程:

pmax[i] = max( pmax[i-1], arr[i] - premin )    //k天前最大收益

pmax[i] = max ( pmax[i+1], premax - arr[i] )   //k天后最大收益

class Solution {
public:/*** 计算你能获得的最大收益* * @param prices Prices[i]即第i天的股价* @return 整型*/int calculateMax(vector<int> prices) {int n=prices.size();int premin=prices[0];vector<int> leftmax(n);leftmax[0]=0;for(int i=1;i<n;i++){premin=min(premin,prices[i]);leftmax[i]=max(leftmax[i-1],prices[i]-premin);}int lastmax=prices[n-1];vector<int> rightmax(n);rightmax[n-1]=0;for(int i=n-2;i>=0;i--){lastmax=max(lastmax,prices[i]);rightmax[i]=max(rightmax[i+1],lastmax-prices[i]);}int pmax=0;for(int i=0;i<n;i++){pmax=max(pmax,leftmax[i]+rightmax[i]);}return pmax;}
};

动态规划练习(1)--[编程题] 风口的猪-中国牛市相关推荐

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

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

  2. 股票交易日(动态规划)----美团2016研发工程师编程题(二)

    [编程题] 股票交易日 在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行).给出一天中的股票变化序列,请写一个程序计算 ...

  3. 京东2015实习生笔试编程题

    小米Git git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<–base<–A<–A' ^ | - B<–B' 小米工程师常常需要寻找两 ...

  4. MIT微软为AI量身打造了一套leetcode编程题

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你见过这种编程题目描述方式吗? 不用自然语言描述,也没有输入输出示例,你所看到的就只有一个Python函数. 这是来自MIT.Allen A ...

  5. python算法预测风险等级_一般算法水平到底什么样子才能秒杀Bat的笔试编程题?...

    很简单,打开 LintCode 随便找一道中等难度的题,如果能很快找到思路并提交代码通过,那么BAT公司的笔试编程题基本没什么问题了.(唯一需要注意的是国内公司笔试题目一般都很长,比较考验阅读理解能力 ...

  6. Java动物类enjoy方法打印,面向对象编程题汇总

    在授课面向对象这一章节的时候,发现找一些比较贴近的编程题还是比较难的,从网上整理了一下,希望对需要的朋友有帮助.很多是从网上找的,如果侵犯版权请联系我! 一.类和对象 1.定义一个类Demo,其中定义 ...

  7. 网易笔试编程题java_2017年网易校招笔试JAVA研发编程题

    为什么80%的码农都做不了架构师?>>> 尝试挑战了下网易2017校招的笔试编程题,共三题,AC第一题,第二题思考了很久勉强用一种low逼的方式完成,第三题没有完成,希望路过的ACM ...

  8. 中科院C语言应聘机试编程题6,中科院计算所保研笔试+机试+面试经验分享

    计算所JDL(先进人机交互)实验室 9月10号开始联系计算所导师,12号收到导师的回复,大致意思是老师让我提供三位本校推荐老师的联系方式,又问了是否有读博的打算,让我准备到计算所JDL面试,16号收到 ...

  9. 美团点评2017秋招笔试编程题

    美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是 ...

  10. 麻省理工、微软为AI量身打造了一套leetcode编程题

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 你见 ...

最新文章

  1. js如何判断当前文本的输入状态——中文输入法的那些坑
  2. k8s包管理器helm_是时候使用Helm了:Helm, Kubernetes的包管理工具
  3. 程序员考试范围(考试大纲)
  4. HTTP报文-请求方式
  5. 个性化网管软件快速实现方法
  6. 坚果云服务器地址,坚果云第三方应用授权WebDAV开启方法
  7. golang图片处理库image简介
  8. fetch.php是什么意思,fetch什么意思
  9. 初识Linux与运维
  10. 用“大数据”预防职务犯罪
  11. 个人理解之内网ip与外网ip
  12. 【文件包含漏洞03】文件包含漏洞的空字符绕过及六种利用方式
  13. 预防死锁,检测死锁,避免死锁,解除死锁....
  14. VScode:关于如何在鼠标右键选项栏中添加open with code
  15. 二重积分的计算.02
  16. ArcGIS地质图矢量化技巧概要
  17. 【图文详细 】Linux上的MySql安装,小老弟假如看不懂,请评论攻击我!
  18. 公众号定时推送早安、天气预报-保姆级教程
  19. 用ChatGPT实际沟通的结果[有图有真相]
  20. vc++中如何实现类似fences软件中的栅栏桌面

热门文章

  1. lecture9-提高模型泛化能力的方法
  2. 干货|50个大数据面试问题及答案第一篇:10个大数据面试入门级问题
  3. 微诺“新婚”一年:相濡以沫 前路未知
  4. zheng:环境搭建及项目部署
  5. 网格布局---grid
  6. 简单网络管理协议SNMP通讯基础篇-熊健-专题视频课程
  7. php服务器支付宝的pcm,php - 支付宝当面付报错
  8. 刘欣《码农翻身》之动态代理读后感
  9. python课后作业之三科成绩总和、平均分+体脂率计算
  10. DNS劫持又称域名劫持