股票买卖(C/C++)
对于第一组样例,阿福可以第 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
问题相当于:一个数组 i<=j<=k<=l 求a[j]-a[i]+a[l]-a[k]的最大值
思路:以某一个数位节点,求出这个数之前的利润最大值和这个数之后的利润最大值
AC代码:
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include <algorithm>
#include<string.h>
#include<math.h>
#define llu unsigned long long
using namespace std;int a[100010],dp1[100010],dp2[100010],maxx[100010],minn[100010];
//dp1数组用来存第一次卖出能赚的钱,dp2存第二次卖出赚的钱
int main()
{int T;cin >> T ;while(T--){int n;cin >> n;//long long a[n],dp1[n],dp2[n],maxx[n],minn[n];for(int i=0;i<n;i++){scanf("%d",&a[i]);//cin >> a[i] ;//cout << "yyy" << endl ;}//找此位置前的最低价格 minn[0]=a[0];dp1[0]=0;for(int i=1;i<n;i++){minn[i]=min(minn[i-1],a[i]);dp1[i]=max(dp1[i-1],a[i]-minn[i]);//求出以这个数为节点的第一次卖出的最大利润 }//找此位置后的最高价格 maxx[n-1]=a[n-1];dp2[n-1]=0;for(int i=n-2;i>=0;i--){maxx[i]=max(maxx[i+1],a[i]);dp2[i]=max(dp2[i+1],maxx[i]-a[i]);//求出以这个数为节点的第二次卖出的最大利润}int ans=0;for(int i=0;i<n;i++){ans=max(ans,dp1[i]+dp2[i]);}//cout << ans << endl ;printf("%d\n",ans);}return 0;
}
股票买卖(C/C++)相关推荐
- 【leetcode】股票买卖系列总结
股票买卖系列总结 股票买卖系列的题目在面试中还是比较经典的,这里对这一系列做一些简单的总结. 1. 只允许买卖一次 假设股票价格序列为(3, 5, 7, 3, 8, 1) 动态规划.整个过程中的行为选 ...
- LeetCode 股票买卖问题
LeetCode 股票买卖问题 文章目录 LeetCode 股票买卖问题 一.问题描述 **二. 穷举框架** **三. 状态转移框架** **四.解题** `第一题`:`K = 1` `第⼆题`, ...
- 算法(24)-股票买卖
股票买卖 1.动态规划框架 LeetCode-121 一次买卖 LeetCode-122 不限次数 LeetCode-309 不限次数+冷冻期 LeetCode-714 不限次数+手续费 LeetCo ...
- 股票买卖(信息学奥赛一本通-T1302)
[题目描述] 最近越来越多的人都投身股市,阿福也有点心动了.谨记着"股市有风险,入市需谨慎",阿福决定先来研究一下简化版的股票买卖问题. 假设阿福已经准确预测出了某只股票在未来N天 ...
- 百练 06 股票买卖
百练 06 股票买卖 总时间限制: 内存限制: 1000ms 65536kB 描述 最近越来越多的人都投身股市,阿福也有点心动了.谨记着"股市有风险,入市需谨慎",阿福决定先来研究 ...
- 【leetcode】【动态规划】股票买卖
leetcode 股票买卖(动态规划) 这位大佬四种题型总结的很好:link 一共只有三种状态:买.卖.冷冻 buy[i]buy[i]buy[i] 表示第i天之前最后一次行为是buy时,最大的收益 s ...
- Bailian4121 股票买卖【最值】
4121:股票买卖 总时间限制: 1000ms 内存限制: 65536kB 描述 最近越来越多的人都投身股市,阿福也有点心动了.谨记着"股市有风险,入市需谨慎",阿福决定先来研究一 ...
- 股票买卖接口如何实现委托下单的功能?
股票买卖接口如何实现委托下单的功能?一般来说,股票买卖接口都是相关的人士已经设计好,并且是程序形式呈现出来的,和券商系统链接起来,这样就可以实现交易了,下面给分享关于股票买卖接口是如何执行委托下单的代 ...
- 股票买卖原理_如何在智能手机上买卖股票
股票买卖原理 The stock market can be a scary place, especially if you're just getting into trading or inve ...
- 股票买卖明细接口是怎样实现查询交易数据的?
股票买卖明细接口作为软件应用而言,很多资源和数据不一定就是由其自身提供的,所以说某些功能还是需要调用第三方提供的服务,这其中就涉及到API接口的调用.也就是说,股票买卖明细接口是与数据端直接挂钩的,通 ...
最新文章
- 选择HttpHandler还是HttpModule?
- java Scanner具有神奇的作用可惜大部分java开发人员不知
- MySQL中update修改数据与原数据相同会再次执行吗?
- 各种模板(数学数论字符串)
- python3 安装Crypto 出现的问题
- 前端学习(3250):一个简单的文件
- php分布式的锁,laravel分布式并发锁
- 一文带你读懂Self-Supervised Learning(自监督学习)
- python预测数据怎么写_Python代写时间序列选择波动率预测指数收益算法分析案例...
- 从IBM和SUN分析当前SOA公司现状
- DataGrip连接不上本地localhost数据库解决办法
- java 图片压缩100k_Java 图片压缩至指定大小
- 12.STC15W408AS单片机比较器
- matlab 平行四边形,matlab计算四边形面积
- activemq如何保证消息按顺序消费
- 直播回顾 | 阿拉丁带你探秘未来文旅新生态
- 倒计时不到1天!iPhone 11系列起售价预测,或将成为新的“真香机”
- 图像修复之Exemplar-Based Inpainting
- ICPC 2019 徐州网络赛
- 中科蓝讯AB536X系列芯片PWM使用说明
热门文章
- Caleb Pike索尼A7 III视频指南DSLR视频拍摄教程 中文字幕 Sony A7 III Video Guide
- 从能力者变身赋能者 用友YonBuilder开启“人人都是开发者”新时代
- jenkins pipeline Extended Choice Parameter
- 爬虫实战:爬取京东手机图片并保存到本地
- 科技界需要自己的希波克拉底誓言
- 全网最全linux Csa 文件创建,删除的方法,教你五分钟掌握干货
- Java编写斗地主游戏
- nginx 文件服务器 开源,在开源分布式文件系统MogileFS 中使用 Nginx
- 数学是一门逻辑性极强的演绎科学,只有对基本概念深入理解,对基本定理和公式牢牢记住,才能找到解题的突破口和切入点。
- KdPrint使用方法