当前位置:网站首页>LeetCode 0122.买卖股票的最佳时机 II
LeetCode 0122.买卖股票的最佳时机 II
2022-07-19 17:56:00 【Tisfy】
【LetMeFly】122.买卖股票的最佳时机 II
力扣题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/
给你一个整数数组 prices
,其中 prices[i]
表示某支股票第 i
天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。
示例 1:
输入:prices = [7,1,5,3,6,4] 输出:7 解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。 总利润为 4 + 3 = 7 。
示例 2:
输入:prices = [1,2,3,4,5] 输出:4 解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。 总利润为 4 。
示例 3:
输入:prices = [7,6,4,3,1] 输出:0 解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。
提示:
1 <= prices.length <= 3 * 104
0 <= prices[i] <= 104
方法一:贪心
其实这道题在中等难度里应该算是简单的了。
既然可以多次购买股票,那么只要我能赚,我就买。
因为最多同时持有一股股票,因此为了不影响我后面的低价买入,只要卖了能赚钱,我就卖。
那么我们只需要遍历一遍数组,如果明天的股票比今天的贵,今天就买入并且明天卖掉。
这样就可以了。
- 时间复杂度 O ( N ) O(N) O(N),其中 N N N为已知股票金额的天数( p r i c e s . s i z e ( ) prices.size() prices.size())。
- 空间复杂度 O ( 1 ) O(1) O(1)
AC代码
C++
class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans = 0;
for (int i = 1; i < prices.size(); i++) {
if (prices[i] > prices[i - 1]) {
ans += prices[i] - prices[i - 1];
}
}
return ans;
}
};
同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/125868266
边栏推荐
- Filebeat collects logs and gives them to logstash
- LeetCode每日一练 —— 17.04. 消失的数字
- R语言可视化散点图、使用ggrepel包的geom_text_repel函数避免数据点之间的标签互相重叠(设置hjust参数显示所有数据点的标签在可视化图像的顶部)
- Arrow function in ES6
- P7914 [CSP-S 2021] 括号序列 题解
- Makefile笔记
- R语言获取data.table数据中指定数据列的第N个最大值所在的数据行
- UML建模工具Visio 、Rational Rose、PowerDesign
- >/dev/null 2>&1 &
- PDA-RBCs-NPs 聚多巴胺修饰的红细胞-纳米粒子复合/透明质酸包裹马钱子碱牛血清蛋白纳米粒的制备
猜你喜欢
《天天数学》连载61:三月一日
Installing MySQL in centos7
Leetcode daily practice - 17.04 Vanishing numbers
【url传参】之 获取url?后面的参数,对应参数名获取值 和 全量获取转换为对象结构两种方式
【软件测试】—— 微信发红包测试用例
ES6中的箭头函数
C2B模式下优惠券架构演进
[software test] - water cup test case
[IVX from introduction to mastery · opening] initial IVX -- zero code visual programming language
Arrow function in ES6
随机推荐
DTX-GA-BSA NPs 载多西他赛和藤黄酸白蛋白纳米粒/硫鸟嘌呤白蛋白纳米粒
数据治理新动态:欧盟发布数据治理研究报告,对国内有何影响
C语言结构体
R语言ggpubr包ggarrange函数将多幅图像组合起来、annotate_figure为组合图像添加注释、注解、标注信息、使用right参数在可视化图像右侧添加注解信息(在文本中添加上标和下标
Extended operator in ES6
七月集训(第19天) —— 二叉树
Wechat applet development uses onreachbottom to realize page bottom loading and paging
VO、DTO、DO、PO区分和使用
R语言使用lm函数构建多元回归模型(Multiple Linear Regression)、并根据模型系数写出回归方程
Preparation of GL hsanps glycyrrhizic acid coupled human serum albumin loaded resveratrol / Rhein phospholipid complex serum protein nanoparticles
歪唱《七里香》——致敬杰伦
Leetcode daily practice - 17.04 Vanishing numbers
Prepare for the interview and stick to the second sentence of "100 days and 100 questions · basic chapter" - basic data types and operators!
【软件测试】—— 水杯测试用例
>/dev/null 2>&1 &
50个名额限量开放|带着OceanBase年度发布会的消息走来了!
csdn涨薪技术之UI⾃动化⼯具: UiAutomator2
面试官必问的 3 道 MQ 面试题,还有谁不会??
P5024 [NOIP2018 提高组] 保卫王国 题解
Performance tools -- JMeter environment preparation