股票模拟交易_复杂状态机

股票模拟交易_复杂状态机给定一个长度为 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/168861.html原文链接:https://javaforall.net

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


相关推荐

  • Browserify_browses

    Browserify_browses1.Browserify是什么?“Browserifyletsyourequire(‘modules’)inthebrowserbybundlingupallofyourdependencies.”-Browserify.org出自官网的一句话。用通俗的话讲就是:browserify是一个浏览器端代码模块化工具,可以处理模块之间的依赖关系,让服务器端的

    2025年7月29日
    5
  • python函数详解_INDEX函数

    python函数详解_INDEX函数前言:一、函数的作用函数就是将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。函数在开发过程中,可以更高效的实现代码重用。二、函数的使用步骤1.定义函数def函数名(参数):代码1代码2……2.调用函数函数名(参数)注意:不同的需求,参数可有可无。在Python中,函数必须先定义后使用。…

    2022年10月18日
    3
  • Scrapy框架的使用之Selector的用法

    Scrapy框架的使用之Selector的用法

    2022年4月2日
    43
  • 整数规划matlab实例,整数规划matlab[通俗易懂]

    整数规划matlab实例,整数规划matlab[通俗易懂]整数规划matlabTag内容描述:1、例已知非线性整数规划为maxz=x12+x22+3×32+4×42+2×52-8×1-2×2-3×3-x4-2x5s.t.0xi99,i=1,2,5×1+x2+x3+x4+x5400x1+2×2+2×3+x4+6x58002x1+x2+6x3200x3+x4+5×5200(1)编写M文件mengte.m,定义目标函数f和约束向量函数g,程序如下:funct…

    2022年7月12日
    21
  • 冒泡排序的代码java_冒泡排序java代码实现

    冒泡排序的代码java_冒泡排序java代码实现publicclassBubbleSort{publicstaticint[]sort(int[]array){for(inti=1;iarray[j+1]){inttemp=array[j];array[j]=array[j+1];array[j+1]=temp;flag=false;}}System.out.println(flag);//如果为true,则说明排序已…

    2022年6月16日
    32
  • mapState与mapGetters语法糖

    mapState与mapGetters语法糖vuex中的mapState,mapGetters属于辅助函数,其实就是vuex的一个语法糖,使代码更简洁更优雅。<script>import{mapState,mapGetters}from”vuex”exportdefault{computed:{ //原先templateInfo(){ returnthis.$store.state.templateInfo},//现在

    2022年5月17日
    39

发表回复

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

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