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

刷题之买股票的最佳时机(leetcode)

买股票的最佳时机

在这里插入图片描述
动态规划入门题。

最简单的模拟式解法:

class Solution {
public:int maxProfit(vector<int>& prices) {//也可以换一种思路,因为只交易一次,那么找出股票最便宜的时候买入,最贵的时候卖出,最大利润为(该天的股价-前面天数中最小的股价)int profit=0;int cost=prices[0];for(int i=1;i<prices.size();i++){profit=max(prices[i]-cost,profit);cost=min(prices[i],cost);}return profit;}
};

动态规划解法:

class Solution {
public:int maxProfit(vector<int>& prices) {vector<vector<int>>dp(prices.size(),vector<int>(2,0));dp[0][0]=0;dp[0][1]=-prices[0];for(int i=1;i<prices.size();i++){//只能交一次易//第i天没有持有股票的最大利润为前一天没有持有股票,并且第i天也没有买入;第i-1天有,但今天卖出dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]);//第i天持有股票的最大利润是:前一天有股票,第i天没有卖出,或者第i天买入dp[i][1]=max(dp[i-1][1],-prices[i]);}return dp[prices.size()-1][0];}
};
http://www.lryc.cn/news/393994.html

相关文章:

  • Apache Seata透过源码解决SeataAT模式整合Mybatis-Plus失去MP特性的问题
  • 1.2 如何让机器说人话?万字长文回顾自然语言处理(NLP)的前世今生 —— 《带你自学大语言模型》系列
  • 【QT】按钮类控件
  • RedHat运维-Linux软件包管理基础-RHEL9软件包管理基础
  • uniapp----- 判断小程序版本有没有更新
  • Spring Boot的无缝衔接:深入解析与实践
  • 在Linux上查找文件的2个好用的命令
  • 实现WebSocket聊天室功能
  • qt opencv 应用举例
  • QT5.12环境搭建与源码编译
  • Android中android.fg线程和android.ui线程分别代表什么?
  • MATLAB 2024b 更新了些什么?
  • SSM高校教师教学质量评估系统-计算机毕业设计源码03344
  • 【Linux进阶】文件系统5——ext2文件系统(inode)
  • 华为云简介
  • Doris数据库---建表、调整表结构操作
  • 《昇思 25 天学习打卡营第 11 天 | ResNet50 图像分类 》
  • 实现多数相加,但是传的参不固定
  • Windows环境安装Redis和Redis Desktop Manager图文详解教程
  • SQL Server 2022的组成
  • 【大语言模型系列之Transformer】
  • 操作系统-懒汉式单例模式
  • 设计模式探索:策略模式
  • 提升效能:Symfony 性能优化实用指南
  • 1.pwn的汇编基础(提及第一个溢出:整数溢出)
  • 迎接AI新时代:GPT-5即将登场的巨大变革与应用前瞻
  • 封锁-封锁模式(共享锁、排他锁)、封锁协议(两阶段封锁协议)
  • 跨境干货|最新注册Google账号方法分享
  • MySQL第三天作业
  • 网络安全应急处理流程