LeetCode买卖股票之一:基本套路(122)
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
关于《LeetCode买卖股票》系列
[*]在LeetCode上,有数道和买卖股票有关的题目,覆盖了简单、中等、困难,要求都是选择低价时间买入、高价时间卖出,以求达到利润最大化
[*]这类题型的特点就是:典型的动态规划题型,掌握套路后,越做越开心,就算难度是困难的题目,也能从容面对
[*]于是,欣宸将此类题目聚集在一起,集中火力分析和解题,构成了《LeetCode买卖股票》系列,在该系列中,欣宸与您一同打好基础,再将该类型题目逐个攻克,在LeetCode世界中做一回股神
本篇概览
[*]对之前的解题经历做了认真回顾后,我这边决定用第122题《买卖股票的最佳时机 II》作为系列的开篇,原因是此题在所有买卖股票的文章中最为典型:题目具备代表性,同时其他题目中奇怪的约束条件如冻结期、交易次数等,在122题中都不存在,写出的状态转移方程可以作为其他题目的参考
[*]接下来开始做题吧,先看题目
题目信息
[*]题号:122
[*]难度:中等
[*]描述
[*]给你一个整数数组 prices ,其中 prices 表示某支股票第 i 天的价格。
[*]在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
[*]返回 你能获得的 最大 利润 。
[*]示例 1:
输入:prices =
输出:7
解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。
总利润为 4 + 3 = 7 。
[*]示例 2:
输入:prices =
输出:4
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
总利润为 4 。
[*]示例 3:
输入:prices =
输出:0
解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。
[*]提示:
1
页:
[1]