天天看點

劍指Offer——股票的最大利潤(JS實作) |刷題打卡

前言

掘金團隊号上線,助你 Offer 臨門! 點選

檢視詳情

題目描述

劍指Offer——股票的最大利潤(JS實作) |刷題打卡

解題思路

  • 首先定義一個數組用來存儲當天之後股票的價格-今天的價格的最大值
  • 周遊每一個元素的同時,取出剩餘元素
  • 使用JS自帶的sort方法,将剩餘元素的最大值取出來,然後存到結果數組中
  • 使用sort方法将結果數組中的最大值進行傳回即可

解題代碼

var maxProfit = function (prices) {
    if (prices.length === 0) return 0;
    const result = [];
    for (let i = 0; i < prices.length; i++) {
        const remain = prices.slice(i + 1);
        const remainMax = remain.sort((num1,num2) => num2 - num1)[0];
        if (remainMax === undefined) {
            result.push(0);
        } else {
            result.push(remainMax - prices[i]);
        }
        
    };
    result.sort((num1,num2) => num2 - num1);

    return result[0];

};
      

總結

  • 本題屬于較為簡單動态規劃問題
  • 最容易出錯的地方在于逾時了
  • 本題給出的不是最優解,隻是作者的個人思路
  • 本題可以通過在周遊每個元素的時候,不斷更新最大值和最小值的方法,來求解

繼續閱讀