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

121. 买卖股票的最佳时机【leetcode】/动态规划

121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

示例 1:
输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:
输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。

提示:
1 <= prices.length <= 105
0 <= prices[i] <= 104

动态规划

dp[i]表示前i个的最小值,然后遍历用prices[i]-dp[i-1]求利润取最大利润

class Solution {
public:int dp[100005];int maxProfit(vector<int>& prices) {dp[0]=prices[0];int res=0;for(int i=1;i<prices.size();i++) dp[i]=min(dp[i-1],prices[i]);for(int i=1;i<prices.size();i++) res=max(res,prices[i]-dp[i-1]);return res;}
};
http://www.lryc.cn/news/312019.html

相关文章:

  • K8S Service相关概念
  • 小米消金剖析“冒充老板”诈骗案例,呼吁群众提高反诈意识
  • 全量知识系统问题及SmartChat给出的答复 之14 解析器+DDD+文法型 之2
  • 蓝桥杯备赛 day2 | 4. 付账问题 5. 数字三角形
  • 2024关于idea激活码报This license xxxx has been suspended
  • Android9-W517-使用NotificationListenerService监听通知
  • git的“You can‘t push commits with committe“解决方法
  • CAN总线的拓扑类型和CAN收发器(原理讲解)
  • 如何实现WordPress后台显示文章、分类目录、标签等的ID?
  • 【GB28181】SIP协议实践之Windows下VS2019编译eXosip、osip,测试(附工程源码,一键打开编译)
  • GPT提示语格式——个人自用
  • MCU最小系统电路设计(以STM32F103C8T6为例)
  • [JavaWeb学习日记]JSP+Cookie+Filter与登录+CRUD案例
  • Ruby网络爬虫教程:从入门到精通下载图片
  • 各中间件性能、优缺点对比
  • 修改表中某个字段等于另一个字段减去 2 小时的 SQL
  • Jetpack Compose: Hello Android
  • 蓝桥每日一题 (差分)3月3号
  • Mybatis和Spring Data Jpa的优缺点比较(八股文)
  • LeetCode买卖股票的最佳时机
  • Codeforces Round 932 (Div. 2)----->A. Entertainment in MAC
  • 【JavaScript】 短路运算的妙用 ||
  • 密码学之椭圆曲线
  • overleaf latex 笔记
  • 第十五届蓝桥杯青少组STEMA测评SPIKE初级真题试卷 2024年1月
  • 10个常见的Java面试问题及其答案
  • Vue跳转页面传递参数
  • 【已解决】conda环境下ROS2 colcon build编译选择特定python解释器
  • QT C++实践| 连接数据库的登录界面实现| 附源码
  • html样式排版