哪里可以建设网站泉州网站制作多少钱
2025/12/26 12:35:52 网站建设 项目流程
哪里可以建设网站,泉州网站制作多少钱,南宁建企业网站,小说网站怎么做不违法给定一个数组 prices #xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果…给定一个数组prices它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润返回0。示例 1输入[7,1,5,3,6,4]输出5解释在第 2 天股票价格 1的时候买入在第 5 天股票价格 6的时候卖出最大利润 6-1 5 。 注意利润不能是 7-1 6, 因为卖出价格需要大于买入价格同时你不能在买入前卖出股票。示例 2输入prices [7,6,4,3,1]输出0解释在这种情况下, 没有交易完成, 所以最大利润为 0。提示1 prices.length 0 prices[i] 解题思路核心逻辑是记录历史最低买入价实时计算当日卖出的利润初始化 “最低买入价” 为第一天价格“最大利润” 为 0遍历后续每天的价格若当日价格低于 “最低买入价”更新 “最低买入价”计算 “当日价格 - 最低买入价” 的利润若大于当前 “最大利润”则更新 “最大利润”遍历结束后返回 “最大利润”若利润为负则返回 0。示例验证示例 1输入prices [7,1,5,3,6,4]遍历过程价格 1min_price1利润 0 → max_profit0价格 5利润 5-14 → max_profit4价格 3利润 3-12 → 不更新价格 6利润 6-15 → max_profit5价格 4利润 4-13 → 不更新最终返回5符合预期。示例 2输入prices [7,6,4,3,1]遍历过程中每日利润均为负数max_profit 始终保持 0最终返回0符合预期。核心优势时间复杂度 O (n)仅一次线性遍历无嵌套操作适配 10⁵级别的数组长度空间复杂度 O (1)仅使用 2 个变量存储中间结果无额外空间开销鲁棒性处理了 “数组长度不足 2”“价格持续下跌” 等边界场景。Python代码from typing import List class Solution: def maxProfit(self, prices: List[int]) - int: if len(prices) 2: return 0 min_price prices[0] max_profit 0 for price in prices[1:]: min_price min(min_price, price) current_profit price - min_price max_profit max(max_profit, current_profit) return max_profit # 测试用例 if __name__ __main__: solution Solution() # 示例1 print(f示例1输入: [7,1,5,3,6,4]) print(f示例1输出: {solution.maxProfit([7,1,5,3,6,4])}) # 示例2 print(f示例2输入: [7,6,4,3,1]) print(f示例2输出: {solution.maxProfit([7,6,4,3,1])}) # 边界用例数组长度为1 print(f示例3输入: [5]) print(f示例3输出: {solution.maxProfit([5])}) # 边界用例价格持续上涨 print(f示例4输入: [1,2,3,4,5]) print(f示例4输出: {solution.maxProfit([1,2,3,4,5])})LeetCode提交代码from typing import List class Solution: def maxProfit(self, prices: List[int]) - int: # 边界条件数组长度不足2时无法完成交易利润为0 if len(prices) 2: return 0 min_price prices[0] # 记录历史最低买入价 max_profit 0 # 记录最大利润 # 遍历每天的价格计算最大利润 for price in prices[1:]: # 更新历史最低买入价 min_price min(min_price, price) # 计算当日卖出的利润并更新最大利润 current_profit price - min_price max_profit max(max_profit, current_profit) return max_profit程序运行结果如下示例1输入: [7,1,5,3,6,4] 示例1输出: 5 示例2输入: [7,6,4,3,1] 示例2输出: 0 示例3输入: [5] 示例3输出: 0 示例4输入: [1,2,3,4,5] 示例4输出: 4总结本文介绍了股票买卖问题的解决方案要求在给定股票价格数组中找到最大利润。算法通过记录历史最低买入价并实时计算当前利润来实现时间复杂度O(n)空间复杂度O(1)。关键步骤包括初始化最低价为第一天价格遍历后续价格更新最低价并计算利润最终返回最大利润若为负则返回0。示例验证和边界条件处理证明了算法的正确性和鲁棒性适用于不同价格趋势的输入。Python代码实现简洁高效通过测试用例验证了算法的有效性。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询