股票模拟交易_股市v型反转

股票模拟交易_股市v型反转给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。输入格式第一行包含整数 N,表示数组长度。第二行包含 N 个不超过 10000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤105输入样例:51

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。

设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):

你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。
输入格式
第一行包含整数 N,表示数组长度。

第二行包含 N 个不超过 10000 的正整数,表示完整的数组。

输出格式
输出一个整数,表示最大利润。

数据范围
1≤N≤105

输入样例:
5
1 2 3 0 2
输出样例:
3

样例解释
对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出],第一笔交易可得利润 2-1 = 1,第二笔交易可得利润 2-0 = 在这里插入代码片2,共得利润 1+2 = 3。
题解
动态规划
f[0][0]代表第一天无货,f[0][1]代表第二、三、四…天无货,f[0][2]代表有货

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+100;
int f[N][3];
const int INF = 0x3f3f3f3f;
int main(){ 
   
    int n,x;
    cin>>n;
    //f[0][0]代表第一天无货,f[0][1]代表第二、三、四...天无货,f[0][2]代表有货
    f[0][0] = f[0][1] = 0;
    f[0][2] = -INF;
    for(int i = 1;i <= n;i ++){ 
   
        cin>>x;
        f[i][0] = f[i - 1][2] + x;
        f[i][1] = max(f[i - 1][1],f[i - 1][0]);
        f[i][2] = max(f[i - 1][2],f[i - 1][1] - x);
    }
    cout<<max(f[n][1],f[n][0])<<endl;
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169148.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql联合索引的使用规则

    mysql联合索引的使用规则从一道有趣的题目开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)以下选项哪些字段使用了该索引:Awherec1=xandc2=xandc4>xandc3=xBwherec1=xandc2=xandc4=xorderbyc3Cwherec1=xandc4=xgroupbyc3,c2Dwherec1=?andc5

    2022年6月4日
    54
  • 免费google代理服务器_google服务器ip地址

    免费google代理服务器_google服务器ip地址有些朋友在登陆谷歌时遇到异常活动而出验证,但是无论怎么输入手机号谷歌都提示此手机号无法用于验证,这种问题大多人都会出现,滥用代理基本都会出现异常验证活动的.谷歌过程中过不了手机号验证,但是在网络上搜一大堆教程也没有用,说什么用QQ邮箱注册、网易邮箱注册等等,这些方法都烂大街了,滥用这些APP接口注册都会被谷歌封号处理的,请大家不要被网上诸多教程误解…

    2022年9月29日
    4
  • BM3D 算法原理详细解析 按过程步骤讲解(附C++实现代码)[通俗易懂]

    BM3D 算法原理详细解析 按过程步骤讲解(附C++实现代码)[通俗易懂]BM3D是2007年提出的算法了,至今已经有一些年头了,但是仍然不妨碍它基本上还是最强的去噪算法。在初步了解了BM3D的算法后,会发现,BM3D有种堆叠怪的嫌疑。有很多不同的算法的影子在里面,比如Non-LocalMeans、Waveletshrinkage等。我感觉思想更像是暴力出奇迹吧。但是架不住效果好。就类似现在的神经网络,一层不行我就来两层。但是相比简单的堆叠,BM3D还是比其他的算法的细节保留上要好一些。好了,不废话了,下面直接来看BM3D的算法原理吧。BM3D算法原理:

    2022年5月27日
    32
  • bcd码与十进制转换方法_5421bcd码转换十进制

    bcd码与十进制转换方法_5421bcd码转换十进制BCD码其实就是之前在数字电路中说的用4位二进制数值来表示一个0-9中的数字,例如:0000=00001=10010=20011=3也就是说如果把一个数字作为一个BCD码,例如:112

    2022年8月6日
    5
  • 基于ArUco的视觉定位

    基于ArUco的视觉定位参考如下:博客.基于ArUco的视觉定位(1-3)https://www.freesion.com/article/4265319144/基于ArUco的视觉定位(4)https://www.pianshen.com/article/2491452618/

    2022年6月22日
    25
  • android之layout_toLeftOf和layout_toRightOf出现的错误

    错误是这样的,布局文件如下,总是在SeekBar里面的这一句android:layout_toLeftOf=”@id/voice_max”报错,差点气得我吐血,明明没有错误的. 

    2022年3月9日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号