题目要点
这个题目除了 DP 外,还可以用贪心解法,比较好理解。
1. 因为我们有无限次的交易次数,那么凡是存在data[i] > data[i-1]
情形时,我们就可以获得利润。
2. 利润最大,就是得到所有可能的利润。
算法1
(贪心) $O(n)$
直接捕获序列中所有上升部分(红色)加和即可
Python 代码
"""
AcWing 1055. 股票买卖 II
"""
N = 100010
n = int(input())
data = [int(d) for d in input().split()]
profit = 0
for i in range(1, n):
if data[i] > data[i - 1]:
profit += (data[i] - data[i - 1])
print(profit)
还得是你
这个绘图看起来好牛p,请教以下是用什么绘的?
Keynote~