""" 股票交易 给定一个数组,数组的第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))
评论前必须登录!
注册