Skip to content

力扣链接:121.买卖股票的最佳时机

难度:⭐

解题关键词:数组

解题思路:我们使用一个变量来记录目前碰到的最低价格,然后假设是在这一天买的,然后往后遍历,计算最大利润,如果碰到更小的,更新最低价格。

typescript
function maxProfit(prices: number[]): number {
  // 目前遇到的最低价格
  let minPrice = Infinity;
  // 最大利润
  let maxProfit = 0;

  for (let i = 0; i < prices.length; i++) {
    // 如果碰到了更低的价格
    if (prices[i] < minPrice) {
      minPrice = prices[i];
    } else if (prices[i] - minPrice > maxProfit) {
      // 有更大的利润
      maxProfit = prices[i] - minPrice;
    }
  }

  return maxProfit;
}