LeetCode 刷题 [C++] 第121题.买卖股票的最佳时机

题目描述

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

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

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

在这里插入图片描述

题目分析

对题目进行分析可知,买卖股票的最佳时机是由之前买或不买的状态决定的,而之前买或不买又由更早的状态决定的。因此,可以通过动态规划的思路来分析。

  1. 更新前i天的最低价格;
  2. 由于需要使得利益最大化,因此,使用dp[i]表示前i天的最大利润;
  3. 且dp[i]等于dp[i−1] 和第 i天卖出的最高利润中的最大值 。

Code

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/505363.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux笔记--系统相关指令

一、系统资源观察 1. df 指令&#xff08;显示文件系统磁盘使用情况统计&#xff09; disk free&#xff0c;显示文件系统磁盘使用情况统计 #以高可读性的形式显示磁盘使用情况统计 df -h (挂载:利用一个目录当成进入点&#xff0c;将磁盘分区槽的数据放置到该目录下&…

Sqli-labs靶场第14关详解[Sqli-labs-less-14]

Sqli-labs-Less-14 #手工注入 post传参了 根据题目看&#xff0c;像一个登录页面&#xff0c;尝试使用布尔型盲注测试能否登录网站 1. Username输入a" 测试是否会有报错&#xff0c;burp抓包 报错&#xff1a;syntax to use near "a"" and password&q…

排序——手撕快排

本节复习快速排序&#xff0c; 快排我们要讲三个版本&#xff1a;一种是霍尔大佬的原版版本&#xff0c; 也就是快速排序的原版。 一种挖坑法。还有一种前后指针法。 首先我们应该知道&#xff0c;三个版本针对的是单趟进行排序的方法不同。 而多趟使用的是递归或者非递归模拟…

Linux 任务进程命令练习

1、通过ps命令的两种选项形式查看进程信息 2、通过top命令查看进程 3、通过pgrep命令查看sshd服务的进程号 4、查看系统进程树 5、使dd if/dev/zero of/root/file bs1M count8190 命令操作在前台运行 6、将第5题命令操作调入到后台并暂停 7、使dd if/dev/zero of/root/file2 bs…

v71.字符串计算

1.字符串 输入和输出 其中scanf("%s",string);读入数据的时候是很微妙的 输入的是Hello world!,输出结果是Hello#。 scanf函数只会读取一段单词&#xff08;字母紧靠一起&#xff09;&#xff0c;遇到回车、空格或者tab就会停止。但是scanf函数的读入是不安全的&am…

艾尔登法环备份存档方法

1.PC端使用WinR输入%AppData%\EldenRing 2.如图创建文件夹“我这取名叫备份存档”&#xff0c;将其中的三个文件复制到新建的文件夹中 3.理论上只需要备份替换ER0000.sl2文件即可

推荐6款SSH远程连接工具

1、Xshell 介绍&#xff1a; xshell是一个非常强大的安全终端模拟软件&#xff0c;它支持SSH1, SSH2, 以及Windows平台的TELNET 协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器&#xff0c;从而比较好的达到远程控制终端的目的。 业界最强大的SSH客户机 官…

新加坡大带宽服务器概览

随着全球互联网的迅猛发展&#xff0c;服务器作为支撑网络应用的重要基础设施&#xff0c;扮演着越来越重要的角色。新加坡&#xff0c;作为亚洲四小龙之一&#xff0c;其服务器市场也备受关注。特别是新加坡的大带宽服务器&#xff0c;更是受到了众多企业和个人的青睐。那么&a…

地信专业未来的前景如何,该怎么学习?

广大普通学校GIS专业学生&#xff0c;如果继续在GIS方向发展&#xff0c;而且走开发路线&#xff0c;结合我这几年面试以及带应届毕业生的经验&#xff0c;学习路线我有这几个方面的建议&#xff0c;仅供参考&#xff1a; 1.大一的时候要学好高数、线性代数和概率论&#xff0c…

IM系统的分布式id生成器

1.背景 在复杂分布式系统中&#xff0c;往往需要对大量的数据进行唯一标识。一般情况下&#xff0c;我们用的都是数据库的自增主键id&#xff0c;但是当数据量大了之后&#xff0c;需要进行分库分表&#xff0c;每个表维护自己的自增id&#xff0c;无法做到唯一。这时候就需要…

关于synchronized介绍

synchronized的特性 1. 乐观锁/悲观锁自适应,开始时是乐观锁,如果锁冲突频繁,就转换为悲观锁 2.轻量级/重量级锁自适应 开始是轻量级锁实现,如果锁被持有的时间较长,就转换成重量级锁 3.自旋/挂起等待锁自适应 4.不是读写锁 5.非公平锁 6,可重入锁 synchronized的使用 1&#…

yolov8添加注意力机制模块-ShuffleAttention

修改 原本打算把ShuffleAttention模块先写进conv.py文件中&#xff0c;然后在引入tasks.py文件中。但是不知道咋回事&#xff0c;在tasks.py文件中引入报红。所以干脆直接把ShuffleAttention模块写进了tasks.py文件中。 from torch.nn import init from torch.nn.parameter i…