122.买卖股票的最佳时机Ⅱ
# 122.买卖股票的最佳时机Ⅱ
给定一个数组 prices ,其中 prices[i] 表示股票第 i 天的价格。在每一天,你可能会决定购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以购买它,然后在 同一天 出售。返回 你能获得的 最大 利润 。
输入: prices = [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
# 1.贪心
因为不限制股票购买次数,只要统计所有的上坡,最终得到的一定是利润最大的情况。对于num[ i ]而言,判断num[ i ]-num[ i-1 ]是否大于零,如果大于零则说明当前第i个元素位置是一个波峰的结尾。
注意:这里并不需要统计最低波峰波谷,只需要统计累加每一小段的上坡。
# 2.动态规划
通法:枚举股票每一种状态机,也就说对于每一个股票而言分为如下几种状态:
- 未持有股票
- 购买当前股票
- 空过
- 已经持有股票(在前面购入)
- 以当前股票价格卖出
- 空过
编辑 (opens new window)
上次更新: 2023/12/15, 15:49:57