"""
股票交易
给定一个数组,数组的第i个元素表示给定股票第i天的价格。
只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。
计算你所能获取的最大利润。
返回可以从这笔交易中获取的最大利润,
如果不能获取任何利润,返回0。
"""
def calculate_max_profit(prices):
"""
计算给定价格列表中的最大利润。
通过在列表中找到一个买进和卖出的时机,以实现最大的利润。买进的时机是找到一个最低点,然后在之后的某个点卖出,卖出价格应高于买进价格。
不需要真正持有股票,因此可以同时考虑多个买卖周期。
参数:
prices (list): 一个包含股票每日价格的列表。
返回:
int: 可以实现的最大利润。
"""
# 初始化最大利润为0
max_profit = 0
# 如果价格列表长度小于等于1,则无法进行交易,直接返回0
if len(prices) <= 1:
return max_profit
# 初始化最低价格为列表的第一个价格
min_price = prices[0]
# 遍历价格列表,从第二个价格开始
for price in prices[1:]:
# 计算当前价格与最低价格的差值,并与当前最大利润比较,取较大值
max_profit = max(price - min_price, max_profit)
# 更新最低价格为当前价格和之前最低价格的较小值
min_price = min(price, min_price)
# 返回最大利润
return max_profit
if __name__ == '__main__':
prices = [100, 11, 55, 33, 66, 99, 77]
print(calculate_max_profit(prices))
评论前必须登录!
注册