买卖股票的最佳时机
js
// 时间复杂度:O(n),只遍历一次
// 空间复杂度:O(1),只需使用常数个变量来存储最小买入价格和最大收益利润
var maxProfit = function (prices = []) {
// 最大收益&最小购入价格
let maxProfit = 0, minPrice = Infinity
for (let i = 0; i < prices.length; i++) {
const curPrice = prices[i]
// 如果当前价格小于最小购入价格,则更新最小购入价
if (curPrice < minPrice) {
minPrice = curPrice
}
// 如果当前价格减去最小购入价格 大于 最大收益,则保存收益
else if (curPrice - minPrice > maxProfit) {
maxProfit = curPrice - minPrice
}
}
return maxProfit
}