Skip to content

买卖股票的最佳时机

LeetCode-121

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
}