4121:股票买卖
总时间限制: 1000ms 内存限制: 65536kB
描述
最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。

假设阿福已经准确预测出了某只股票在未来 N 天的价格,他希望买卖两次,使得获得的利润最高。为了计算简单起见,利润的计算方式为卖出的价格减去买入的价格。

同一天可以进行多次买卖。但是在第一次买入之后,必须要先卖出,然后才可以第二次买入。

现在,阿福想知道他最多可以获得多少利润。

输入
输入的第一行是一个整数 T (T <= 50) ,表示一共有 T 组数据。
接下来的每组数据,第一行是一个整数 N (1 <= N <= 100, 000) ,表示一共有 N 天。第二行是 N 个被空格分开的整数,表示每天该股票的价格。该股票每天的价格的绝对值均不会超过 1,000,000 。
输出
对于每组数据,输出一行。该行包含一个整数,表示阿福能够获得的最大的利润。
样例输入
3
7
5 14 -2 4 9 3 17
6
6 8 7 4 1 -2
4
18 9 5 2
样例输出
28
2
0
提示
对于第一组样例,阿福可以第 1 次在第 1 天买入(价格为 5 ),然后在第 2 天卖出(价格为 14 )。第 2 次在第 3 天买入(价格为 -2 ),然后在第 7 天卖出(价格为 17 )。一共获得的利润是 (14 - 5) + (17 - (-2)) = 28
对于第二组样例,阿福可以第 1 次在第 1 天买入(价格为 6 ),然后在第 2 天卖出(价格为 8 )。第 2 次仍然在第 2 天买入,然后在第 2 天卖出。一共获得的利润是 8 - 6 = 2
对于第三组样例,由于价格一直在下跌,阿福可以随便选择一天买入之后迅速卖出。获得的最大利润为 0

问题链接:Bailian4121 股票买卖
问题简述:(略)
问题分析:最值问题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4121   股票买卖 */#include <bits/stdc++.h>using namespace std;const int N = 100000;
int a[N], pre[N], pro[N];int main()
{int t, n;scanf("%d", &t);while (t--) {scanf("%d", &n);for (int i = 0; i < n; i++) scanf("%d", &a[i]);memset(pre, 0, sizeof pre);memset(pro, 0, sizeof pro);int mina = a[0], maxa = a[n - 1];for (int i = 1; i < n; i++) {mina = min(mina, a[i]);pre[i] = max(pre[i - 1], a[i] - mina);}for (int i = n - 1; i >= 0; i--) {maxa = max(maxa, a[i]);pro[i] = max(pro[i - 1], maxa - a[i]);}int ans = 0;for (int i = 0; i < n; i++)ans = max(ans, pre[i] + pro[i]);printf("%d\n", ans);}return 0;
}

Bailian4121 股票买卖【最值】相关推荐

  1. 【leetcode】股票买卖系列总结

    股票买卖系列总结 股票买卖系列的题目在面试中还是比较经典的,这里对这一系列做一些简单的总结. 1. 只允许买卖一次 假设股票价格序列为(3, 5, 7, 3, 8, 1) 动态规划.整个过程中的行为选 ...

  2. LeetCode 股票买卖问题

    LeetCode 股票买卖问题 文章目录 LeetCode 股票买卖问题 一.问题描述 **二. 穷举框架** **三. 状态转移框架** **四.解题** `第一题`:`K = 1` `第⼆题`, ...

  3. 算法(24)-股票买卖

    股票买卖 1.动态规划框架 LeetCode-121 一次买卖 LeetCode-122 不限次数 LeetCode-309 不限次数+冷冻期 LeetCode-714 不限次数+手续费 LeetCo ...

  4. 股票买卖明细接口是怎样实现查询交易数据的?

    股票买卖明细接口作为软件应用而言,很多资源和数据不一定就是由其自身提供的,所以说某些功能还是需要调用第三方提供的服务,这其中就涉及到API接口的调用.也就是说,股票买卖明细接口是与数据端直接挂钩的,通 ...

  5. 这篇能让你搞懂股票买卖系列问题

    写在前面 如果觉得写的还不错,有所收获,记得点个关注和点个赞哟,不胜感激. 股票买卖的这个系列问题早在之前就在LeetCode就刷了一遍了,不过当时因为一些原因,没有总结成一篇博文.后面又陆陆续续遇到 ...

  6. 一文教你股票买卖问题实用而装逼的解法

    「股票买卖问题」大概是每个刷 LeetCode 的同学都会遇到的一大拦路虎,特别是其中的第三道题.你是否也曾因为这道题而懵逼呢? 股票买卖系列问题 LeetCode 上的股票买卖系列问题一共六道,形成 ...

  7. LeetCode题解 - 动态规划-股票买卖

    LeetCode题解 - 动态规划-股票买卖 文章目录 LeetCode题解 - 动态规划-股票买卖 **一.穷举框架** **二.状态转移框架** **三.秒杀题目** 121. 买卖股票的最佳时机 ...

  8. 2021新年算法小专题—2.股票买卖利润刷题(Java)

    本篇是股票买卖问题的更多题解,在上一篇文章中我们已经介绍了这一题型,实际上是一类dp问题,我们用自动机的思想去解决,在上一篇中我们以一道限定只买卖一次股票的题目为例进行了讲解,文章链接.下面我们继续完 ...

  9. C++买卖股票的最佳时机(股票买卖大合集)

    股票买卖最佳时机 股票买卖最佳时机 1.买卖股票的最佳时机题目 2.穷举框架 3.状态转移框架 4. k = 1 5. k = +infinity 6. k = +infinity with cool ...

最新文章

  1. copy()与deepcopy()
  2. Java-gt;Android并发编程引气入门篇
  3. pythonspark实例_spark+python快速入门实战小例子(PySpark)
  4. P4640-[BJWC2008]王之财宝【OGF,Lucas定理】
  5. Git 切换提交历史节点
  6. python telnet登录发送命令_Telnet发送命令,然后读取响应
  7. Web前端优化,提高加载速度
  8. 阿里重磅开源中后台UI解决方案Fusion
  9. 【Redis】redis cluster 添加 删除 重分配 节点
  10. SpringBoot接收数组参数
  11. 用new/delete动态创建数组| 一维/二维/三维
  12. mysql 字段去除空格
  13. AiChallenger比赛记录之样本不均衡
  14. speedoffice(PPT)插入的表格怎么合并单元格呢
  15. 如何检测ajax完成且是成功的,检测ajax调用是否成功
  16. 蒋志平从零到亿的创业路
  17. 天盾linux数据恢复,天盾Mac数据恢复软件
  18. Ural 1671 - Anansi's Cobweb 倒过来做...并查集维护..
  19. 重上吹麻滩——段芝堂创始人翟立冬游记
  20. Ubuntu防火墙UFW

热门文章

  1. 一层循环时间复杂度_数据结构与算法系列——时间、空间复杂度
  2. uniaccess安全助手卸载_“安装一分钟,卸载半小时”,盘点高速下载通道中的流氓操作...
  3. 获取android手机基本信息
  4. AS3之BitmapData学习整理
  5. es和oracle,Oracle和Elasticsearch数据同步
  6. c 更新mysql数据_MySQL插入更新删除数据
  7. sublime配置python-rpel_SublimeREPL配置Python3开发
  8. 【java学习之路】(java框架)001.Maven配置及使用
  9. Hadoop对小文件的解决方案
  10. 服务器虚拟化的毕业设计,云桌面技术研究与应用毕业设计论文+开题报告+翻译+源码...