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

leetcode 121. Best Time to Buy and Sell Stock

题目描述

本题属于动态规划类问题。

dp数组的含义

dp[i][0]表示从第0天到第i天为止,处于持有股票的状态下,账户里的最大金额。

dp[i][1]表示从第0天到第i天为止,处于不持有股票的状态下,账户里的最大金额。

按照这个定义dp[n-1][1]就是问题的答案。

dp数组的初始化

        dp[0][0] = -prices[0]; //表示买入了第0天的股票,手里账户金额是负数

        dp[0][1] = 0;  //表示到第0天为止,不持有股票即不买入第0天的股票的话,账户金额是0

递推公式的分析

从第0天到第i天为止,导致持有股票的状态有两种可能的原因:一是第0天到第i-1天的某一天买入了股票,对应dp[i-1][0]。二是第i天买入了股票,需要支付prices[i]。

            dp[i][0] = max(dp[i-1][0],-prices[i]);

从第0天到第i天为止,导致不持有股票的状态有两种可能的原因:一是从第0天到第i-1天为止就是不持有股票的状态(此情况下,第i天没法卖出股票)。二是第i天卖出了股票,第i天能卖出股票的前提是从第0天到第i-1天为止是持有股票的状态。

            dp[i][1] = max(dp[i-1][1],dp[i-1][0]+prices[i]);

代码

class Solution {
public:int maxProfit(vector<int>& prices) {int n = prices.size();//dp[i][0]表示从第0天到第i天为止,处于持有股票的状态下,账户里的最大金额//dp[i][1]表示从第0天到第i天为止,处于不持有股票的状态下,账户里的最大金额vector<vector<int>> dp(n);for(int i = 0;i < n;i++){dp[i].resize(2);}dp[0][0] = -prices[0]; //表示买入了第0天的股票,手里账户金额是负数dp[0][1] = 0;  //表示到第0天为止,不持有股票即不买入第0天的股票的话,账户金额是0for(int i = 1;i < n;i++){//从第0天到第i天为止,导致持有股票的状态有两种可能的原因,//一是第0天到第i-1天的某一天买入了股票,对应dp[i-1][0]//二是第i天买入了股票,需要支付prices[i]dp[i][0] = max(dp[i-1][0],-prices[i]);//从第0天到第i天为止,导致不持有股票的状态有两种可能的原因://一是从第0天到第i-1天为止就是不持有股票的状态(此情况下,第i天没法卖出股票)//二是第i天卖出了股票,第i天能卖出股票的前提是从第0天到第i-1天为止是持有股票的状态dp[i][1] = max(dp[i-1][1],dp[i-1][0]+prices[i]);}return dp[n-1][1];}
};

相关文章:

  • 编译原理(自考13007)
  • OpenAI GPT-4.1系列模型的突破与潜力
  • emotn ui桌面软件tv版下载安装教程-emotn ui桌面好用吗
  • 【触想智能】工业触摸一体机在金融智能设备领域上应用的优势
  • 实战指南:封装Whisper为FastAPI接口并实现高并发处理
  • 华为云CloudMatrix 384 超节点将有数万规模上线,赋能AI产业发展
  • 锂电池行业碳酸锂结晶介质釜底阀-耐磨V型调节切断球阀:技术革新与应用解析-耀圣
  • JVM 常用监控工具介绍和使用
  • ThinkPHP中Redis操作示例
  • 重温hot100-day5
  • libevent服务器附带qt界面开发(附带源码)
  • Oracle PL/SQL 中,异常(Exception)
  • C++基础语法(1)
  • Wan2.1 多模态数据导出 export_to_video
  • 解密 Vue 打包策略
  • WHAT - 动态导入模块遇到版本更新解决方案
  • [Java实战经验]对象拷贝
  • 《ADVANCING MATHEMATICAL REASONING IN LAN- GUAGE MODELS》全文阅读
  • ESP32驱动读取ADXL345三轴加速度传感器实时数据
  • 一键直达:用n8n打造谷歌邮箱到Telegram的实时通知流
  • 国际观察|韩国在政局多重不确定性中迎接总统选举
  • 生命与大海相连:他在300多米的深海行走,在沉船一线打捞救援
  • 思政课也精彩,“少年修齐讲堂”开讲《我的中国“芯”》
  • 李公明︱一周书记:数字文化的乌托邦精神与……算法时代的生存指南
  • 2025年第一批“闯中人”已经准备好了
  • 揭秘神舟十九号返回舱“软着陆”关键:4台发动机10毫秒内同时点火