当前位置: 首页 > article >正文

买卖股票的最佳时机

121.买卖股票的最佳时机(只能进行一次买入卖出)

记录 历史最低价格

显然,如果我们真的在买卖股票,我们肯定会想:如果我是在历史最低点买的股票就好了!太好了,在题目中,我们只要用一个变量记录一个历史最低价格 minprice,我们就可以假设自己的股票是在那天买的。那么我们在第 i 天卖出股票能得到的利润就是 prices[i] - minprice

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res=0;
        int low=prices[0];
        for(int i=1;i<prices.size();i++){
            res=max(res,prices[i]-low);
            if(prices[i]<low){
                low=prices[i];              
            }          
        }
        return res;
    }
};

差值数组(每天涨了多少或跌了多少)求最大子数组和

122.买卖股票的最佳时机 II(多次买入卖出)

贪心,折线图每个上升段的累加和

贪心算法只能用于计算最大利润,计算的过程并不是实际的交易过程。

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res=0;
        for(int i=0;i<prices.size()-1;i++){
            if(prices[i+1]>prices[i])res+=prices[i+1]-prices[i];
        }
        return res;
    }
};

波峰波谷

动态规划,第i天的01两个状态

两次买入卖出

动态规划 dp【N】【4】,第二维分别表示 第一次买入第一次卖出第二次买入第二次卖出,或者两个二维数组 buy【N】【2】,sell【N】【2】

K次买入卖出

动态规划 两个二维数组 buy【N】【K】,sell【N】【K】,或者

dp【N】【K*2】,dp[i][j] 第二维 或许可以滚动数组
0表示买入,1表示卖出,
0 1表示 第一次买入第一次卖出

2 3表示 第二次买入第二次卖出
j+2 /2
第x次买入的编号 =次数x2-2
第x次卖出的编号 =次数x
2-1


http://www.kler.cn/a/6903.html

相关文章:

  • RPA真的是人工智能吗?
  • ks 小程序sig3
  • 表格的选择弹窗,选中后返显到表格中
  • sharding-jdbc自定义分片算法,表对应关系存储在mysql中,缓存到redis或者本地
  • RK3568平台开发系列讲解(platform虚拟总线驱动篇)实验:点亮一个LED
  • 什么是JSX?
  • 让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送
  • ElasticSearch ( 七 ) Mapping映射和数据迁移
  • 科研实验试剂:mPEG Estrogen,PEG-Estrogen,甲氧基聚乙二醇雌激素,用于多肽合成支持
  • 微信小程序二维码的生成方式
  • iPhone手机小技巧:使用备忘录创建清单
  • 物联网 JS 前端框架开发 - 执行 VUE 程序
  • Goby漏洞更新 | SolarView Compact downloader.php 任意命令执行漏洞(CVE-2023-23333)
  • 设计模式七大原则解读
  • 一致性哈希算法 consistent hashing
  • 网络安全-拒绝服务(DDOS)
  • 关于数据通信和串口(USART)的一些笔记
  • 使用cfssl为程序添加https证书
  • 【Redis】集群(cluster)
  • 浅谈各个自研国产数据库优劣对比
  • Mysql LOAD DATA 读取客户端任意文件
  • AQS之ReentrantLock独占锁源码解析
  • top 输出中涉及到的一些参数的解释
  • SonarQube安装教程
  • 2023年noc指导教师认证测评参考试题
  • 重学Java设计模式-结构型模式-代理模式