股票模拟交易_股市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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jsp 和 servlet 有什么区别?

    jsp 和 servlet 有什么区别?jsp和servlet有什么区别?Servlet一种服务器端的Java应用程序 由Web容器加载和管理 用于生成动态Web内容 负责处理客户端请求Jsp是Servlet的扩展,本质上还是Servlet 每个Jsp页面就是一个Servlet实例 Jsp页面会被Web容器编译成Servlet,Servlet再负责响…

    2022年6月15日
    27
  • BeanUtils.copyProperties 用法

    BeanUtils.copyProperties 用法BeanUtils.copyProperties方法不用操作过多的set/get方法,两个类字段相同的时候我们可以通过此方法来进行复制,如有不想复制的属性则用第三个构造参数来进行,如果你只需要改其中的一个属性或者两个属性没必要重新get/set一边直接复制原来的类,付给新类属性名相同即可赋值。…

    2022年9月1日
    6
  • startActivityForResult的坑

    startActivityForResult的坑android中经常会遇到从当前的Activity跳转到另外一个Activity的情况,通常情况下我们会直接选择用startActivity或者startActivityForResult。如果你对这两个方法还不知道的话可以去https://www.cnblogs.com/fuck1/p/5456337.html看看。本文不会告诉你怎么使用这个方法,而是会说说笔者自己遇到的问题以及解决办法。事情…

    2022年7月11日
    18
  • 程序员成才的关键——内在兴趣和善于发现

    程序员成才的关键——内在兴趣和善于发现

    2021年8月29日
    51
  • 最全企业安全网管工具名单查询_企业网络安全管理要求

    最全企业安全网管工具名单查询_企业网络安全管理要求我在一家医药公司做IT运维,老板喊我做一些企业智能化的工作。我就对这块做了些调研,所以知道哪些产品好用,哪些产品不好用,整理了份名单,分享给大家公司文档加密这块:翼火蛇免费3个点,其他按照15+3/月/终端收费,在做小白鼠实验云子可信-铁卷SaaS版目前是内测阶段,是我们公司目前在使用的,还不错,推荐这个!亿赛通收费标准未知,调研过,不好用,可能需要专业人员帮助员工机器管理的:瑞星安全云终…

    2022年10月4日
    6
  • document.getElementById 学习总结「建议收藏」

    document.getElementById 学习总结「建议收藏」document.getElementById获取控件对象为空的解决方法 1.下面是一个简单的例子,页面加载时显示一段信息代码如下:         alert(“hello!!!”);        在页面加载之前,会输出一些信息 执行后,确实是“在页面加载前,输出了信息”

    2022年7月15日
    21

发表回复

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

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