JAVA练习350- 买卖股票的最佳时机

发布时间:2026/7/25 17:27:20
JAVA练习350- 买卖股票的最佳时机 题目概览给定一个数组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 10^50 prices[i] 10^4来源121. 买卖股票的最佳时机 - 力扣LeetCode解题分析方法 遍历定义一个变量 min 存储当前最小的股票当前元素为 cur那么当 cur min 时买 cur 后面的股票利润一定比买 min 少记录此时利润cur - min当 cur min 时买 cur 后面的股票理论一定比买 min 多将 min 设置为 cur因此返回计算过程中最大的利润即可。时间复杂度O(n)空间复杂度O(1)class Solution { public int maxProfit(int[] prices) { int min prices[0], maxProfit 0; for (int price: prices) { min Math.min(min, price); maxProfit Math.max(maxProfit, price - min); } return maxProfit; } }