目录
一、核心思路
二、代码实现
JavaScript
三、举例说明
四、为什么这样是对的
五、时间复杂度
六、边界情况
1. 价格一直下降
2. 只有一天
七、面试回答模板
八、完整示例
九、一句话总结
这题经典表述是:
给定一个数组
prices,prices[i]表示第i天股票价格。
你只能 买一次、卖一次,并且 买入必须在卖出前。
求最大利润。
如果无法获利,返回 0。
一、核心思路
既然只能交易一次,那本质就是:
在每一天卖出时,找到前面最低的买入价格
所以遍历数组时维护两个东西:
minPrice:到当前为止出现过的最低价格maxProfit:到当前为止的最大收益
每到一天 price:
- 先看如果今天卖,收益是多少: