Skip to content

maxProfit

买卖股票的最佳时机 - 计算股票交易的最大利润。

输入配置

执行过程

步骤 1 / 10
开始计算最大利润(只能交易一次)
当前最大利润: 0
Day 0
7
Day 1
1
Day 2
5
Day 3
3
Day 4
6
Day 5
4
当前检查
买入点
卖出点

算法说明

买卖股票最佳时机: 只能交易一次。 使用动态规划,维护最低价格和最大利润。时间复杂度O(n)。

函数签名

typescript
// 多次交易
function maxProfit(prices: number[]): number

// 单次交易
function maxProfitOnce(prices: number[]): number

参数

参数名类型必填说明
pricesnumber[]股票每天的价格

返回值

类型说明
number最大利润

工作原理

maxProfit (多次交易)

使用贪心策略:

  1. 遍历价格数组
  2. 只要第二天价格比今天高,就在今天买入明天卖出
  3. 累加所有正收益

时间复杂度: O(n)
空间复杂度: O(1)

maxProfitOnce (单次交易)

使用动态规划:

  1. 维护当前最低价格
  2. 计算在当前价格卖出的利润
  3. 更新最大利润

时间复杂度: O(n)
空间复杂度: O(1)