maxProfit
买卖股票的最佳时机 - 计算股票交易的最大利润。
输入配置
执行过程
开始计算最大利润(只能交易一次)
当前最大利润: 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参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
prices | number[] | 是 | 股票每天的价格 |
返回值
| 类型 | 说明 |
|---|---|
number | 最大利润 |
工作原理
maxProfit (多次交易)
使用贪心策略:
- 遍历价格数组
- 只要第二天价格比今天高,就在今天买入明天卖出
- 累加所有正收益
时间复杂度: O(n)
空间复杂度: O(1)
maxProfitOnce (单次交易)
使用动态规划:
- 维护当前最低价格
- 计算在当前价格卖出的利润
- 更新最大利润
时间复杂度: O(n)
空间复杂度: O(1)