10、JS实现买卖股票的最佳时机

58 阅读1分钟

题目

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

思路

  • 1、找最小价格
  • 2、找最大利润
  • 3、遍历数组,将当前数值与最小价格相减得到利润
  • 4、将最大利润,与当前利润比较,找最大值

代码

var maxProfit = function(prices) {
    let minPrice=prices[0]
    let max=0
    for(let i=0;i<prices.length;i++){
        minPrice=Math.min(minPrice,prices[i])
        max=Math.max(max,(prices[i]-minPrice))
    }
    return max
};